первая правка по результатам проверки

4 часа
This commit is contained in:
Dmitriy 2021-03-04 00:09:18 +03:00
parent 6461af561d
commit c1c9264976
15 changed files with 9102 additions and 8904 deletions

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@
#include "console.h"
#include "fram_map.h"
#include "lcd.h"
#include "coin.h"
#include "keyboard.h"
#include "app_serv.h"
#include "lpc23xx-iap.h"
@ -79,6 +80,9 @@ static void AppTaskStart (void *p_arg)
BSP_Init(); /* Initialize BSP functions */
// ñðàçó èíèöèàëèçèðóåì âõîäíûå íîãè
initOutputPorts();
#if OS_TASK_STAT_EN > 0
OSStatInit(); /* Determine CPU capacity */
#endif

View File

@ -30,6 +30,7 @@ CPU_INT32U SystemTime;
CPU_INT32U money_timestamp;
CPU_INT32U coin_timestamp;
CPU_INT32U coin_out_timestamp;
CPU_INT08U EnabledChannelsNum;
CPU_INT08U RecentChannel;
@ -86,6 +87,7 @@ int CheckChannelEnabled(CPU_INT08U channel);
int ChannelBusy(CPU_INT08U ch);
void UserPrintIpDeviceErrMenu(CPU_INT08U post);
void UserPrintPrintBillMenu(void);
void UserPrintCoinOut(CPU_INT32U CountCoin);
#ifdef BOARD_CENTRAL_CFG
static char incassation;
@ -181,8 +183,10 @@ void UserAppTask(void *p_arg)
CPU_INT32U CountCoin = 0;
// ðåæèì õîïïåðà
CPU_INT32U regime_hopper = 0;
// ññòîÿíèå õîïïåðà - 1 - âûäà÷à æåòîíîâ
// ñîñòîÿíèå õîïïåðà - 1 - âûäà÷à æåòîíîâ
CPU_INT32U hopperOn = 0;
// 1 - ïðèíÿëè äåíüãè
CPU_INT32U MoneyIn = 0;
while (1)
{
@ -277,9 +281,10 @@ void UserAppTask(void *p_arg)
SetAcceptedRestMoney(0);
SetAcceptedBankMoney(0);
SetAcceptedMoney(0);
MoneyIn = 0;
}
// ïîñìîòðèì ñêîëüêî åùå ìîæíî êóðòèòü ìîòîð õîïïåðà
// ïîñìîòðèì ñêîëüêî åùå ìîæíî êðóòèòü ìîòîð õîïïåðà
CPU_INT32U HopperStopEngine = 0;
GetData(&HopperStopEngineDesc, &HopperStopEngine, 0, DATA_FLAG_SYSTEM_INDEX);
@ -289,6 +294,18 @@ void UserAppTask(void *p_arg)
FIO0SET_bit.P0_24 = 1;
hopperOn = 0;
}
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
// ïðàâäà ÷åðåç íåêîòîðûé òàéìàóò
if(MoneyIn && !hopperStartButton && (labs(OSTimeGet() - coin_out_timestamp) > 1000UL))
{
PostUserEvent(EVENT_GIVE_COIN);
MoneyIn = 0;
}
}
// ïðèíèìàåì äåíüãè
@ -349,6 +366,7 @@ void UserAppTask(void *p_arg)
accmoney += money;
SetAcceptedMoney(accmoney);
IncCounterCoin(money);
IncCounterAllCash(money);
money_timestamp = OSTimeGet();
if (UserMenuState == USER_STATE_ACCEPT_MONEY)
@ -358,15 +376,8 @@ void UserAppTask(void *p_arg)
}
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_COIN, money);
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
if(!hopperStartButton)
{
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
PostUserEvent(EVENT_GIVE_COIN);
}
coin_out_timestamp = OSTimeGet();
MoneyIn = 1;
}
break;
case EVENT_CASH_INSERTED:
@ -378,7 +389,6 @@ void UserAppTask(void *p_arg)
accmoney = GetAcceptedMoney();
accmoney += money;
SetAcceptedMoney(accmoney);
IncCounterCash(money);
money_timestamp = OSTimeGet();
if (UserMenuState == USER_STATE_ACCEPT_MONEY)
@ -390,15 +400,8 @@ void UserAppTask(void *p_arg)
CPU_INT32U billnom_index = FindBillIndex(money);
if (billnom_index != 0xFFFFFFFF) IncBillnomCounter(billnom_index);
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
if(!hopperStartButton)
{
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
PostUserEvent(EVENT_GIVE_COIN);
}
coin_out_timestamp = OSTimeGet();
MoneyIn = 1;
}
break;
case EVENT_BANK_INSERTED:
@ -421,18 +424,10 @@ void UserAppTask(void *p_arg)
UserPrintMoneyMenu();
RefreshMenu();
}
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_BANK, money);
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
if(!hopperStartButton)
{
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
PostUserEvent(EVENT_GIVE_COIN);
}
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_BANK, money);
coin_out_timestamp = OSTimeGet();
MoneyIn = 1;
}
break;
case EVENT_BILL_ESCROW:
@ -450,6 +445,7 @@ void UserAppTask(void *p_arg)
SetAcceptedMoney(accmoney);
IncCounterCash(note);
IncCounterAllCash(note);
money_timestamp = OSTimeGet();
if (UserMenuState == USER_STATE_ACCEPT_MONEY)
@ -464,15 +460,8 @@ void UserAppTask(void *p_arg)
IncBillnomCounter(billnom_index);
}
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
if(!hopperStartButton)
{
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
PostUserEvent(EVENT_GIVE_COIN);
}
coin_out_timestamp = OSTimeGet();
MoneyIn = 1;
}
break;
@ -571,6 +560,11 @@ void UserAppTask(void *p_arg)
break;
}
// çàïðåòèì ïðèåì äåíåã - ïå÷àòàåì ÷åê è âûäàåì ìîíåòû
if (IsValidatorConnected()) CC_CmdBillType(0x000000, 0x000000, ADDR_FL);
CoinDisable();
BankDisable();
// --------------------------
// íàõîäèìñÿ â ðàáî÷åì ðåæèìå
// --------------------------
@ -591,6 +585,13 @@ void UserAppTask(void *p_arg)
{
CountCoin = accmoney / HopperCost;
// íàïèøåì ñêîëüêî âûäàäèì æåòîíîâ
UserPrintCoinOut(CountCoin);
RefreshMenu();
OSTimeDly(2000);
if (CountCoin) SaveEventRecord(RecentChannel, JOURNAL_EVENT_COIN_OUT, CountCoin);
// åñëè õâàòàåò íà æåòîí - âíå çàâèñèìîñòè îò òèïà âûäà÷è æåòîíîâ
if(!regime_hopper)
{
@ -603,6 +604,8 @@ void UserAppTask(void *p_arg)
OSTimeDly(50);
}
IncCounterCoinOut(CountCoin);
// æåòîíû âûäàëè
CountCoin = 0;
@ -632,9 +635,11 @@ void UserAppTask(void *p_arg)
{
if (GetMode() != MODE_WORK) break;
// ñèãíàë îøèáêè õîïïåðà
SetErrorFlag(ERROR_HOPPER);
SaveEventRecord(RecentChannel, ERROR_HOPPER, 0);
if(!TstErrorFlag(ERROR_HOPPER))
{
// ñèãíàë îøèáêè õîïïåðà
SetErrorFlag(ERROR_HOPPER);
}
}
break;
case EVENT_ERROR_HOPPER_OFF:
@ -649,17 +654,23 @@ void UserAppTask(void *p_arg)
{
if (GetMode() != MODE_WORK) break;
// ñèãíàë îòñóòñòâèÿ äåíåã â õîïïåðå
SetErrorFlag(ERROR_NO_MONEY_HOPPER);
SaveEventRecord(RecentChannel, ERROR_NO_MONEY_HOPPER, 0);
if(!TstErrorFlag(ERROR_NO_MONEY_HOPPER))
{
// ñèãíàë îòñóòñòâèÿ äåíåã â õîïïåðå
SetErrorFlag(ERROR_NO_MONEY_HOPPER);
}
}
break;
case EVENT_NOMONEY_HOPPER_OFF:
{
if (GetMode() != MODE_WORK) break;
// ñèãíàë ÑÍßÒÈß îòñóòñòâèÿ äåíåã â õîïïåðå
ClrErrorFlag(ERROR_NO_MONEY_HOPPER);
if(TstErrorFlag(ERROR_NO_MONEY_HOPPER))
{
// ñèãíàë ÑÍßÒÈß îòñóòñòâèÿ äåíåã â õîïïåðå
ClrErrorFlag(ERROR_NO_MONEY_HOPPER);
SaveEventRecord(RecentChannel, EVENT_FULL_MONEY_HOPPER, 0);
}
}
break;
case EVENT_PRINT_CHECK:
@ -682,22 +693,23 @@ void UserAppTask(void *p_arg)
CPU_INT32U accmoney = GetAcceptedMoney();
if (accmoney > 0)
{
UserPrintPrintBillMenu();
RefreshMenu();
{
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney, 0) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec());
}
UserPrintPrintBillMenu();
RefreshMenu();
if (PrintFiscalBill(accmoney, 0) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec());
}
OSTimeDly(1000);
}
IncCounter(ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedMoney(0);
OSTimeDly(1000);
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
if (IsFiscalConnected())
@ -716,21 +728,22 @@ void UserAppTask(void *p_arg)
if (accmoney > 0)
{
UserPrintPrintBillMenu();
RefreshMenu();
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney, 1) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL_ONLINE, GetTimeSec());
}
UserPrintPrintBillMenu();
RefreshMenu();
if (PrintFiscalBill(accmoney, 1) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL_ONLINE, GetTimeSec());
}
OSTimeDly(1000);
}
IncCounter(ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedBankMoney(0);
OSTimeDly(1000);
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
if (IsFiscalConnected())
@ -742,6 +755,16 @@ void UserAppTask(void *p_arg)
OSTimeDly(1000);
LED_OK_OFF();
}
UserPrintMoneyMenu();
RefreshMenu();
// ÷åê íàïå÷àòàëè - ðàçðåøèì ñíîâà ïðèíèìàòü äåíüãè
if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL);
CoinEnable();
BankEnable();
MoneyIn = 0;
}
break;
#else
@ -813,10 +836,10 @@ void UserAppTask(void *p_arg)
break;
case EVENT_KEY_F2:
//testMoney = 50;
//PostUserEvent(EVENT_ERROR_HOPPER_ON);
//PostUserEvent(EVENT_NOMONEY_HOPPER_ON);
break;
case EVENT_KEY_F3:
//PostUserEvent(EVENT_ERROR_HOPPER_OFF);
//PostUserEvent(EVENT_NOMONEY_HOPPER_OFF);
break;
default:
@ -836,6 +859,7 @@ void UserAppTask(void *p_arg)
void UserStartupFunc(void)
{
#ifdef BOARD_CENTRAL_CFG
// èíèöèàëèçàöèÿ ðåæèìà ðàáîòû
InitMode();
@ -961,7 +985,7 @@ void UserPrintMoneyMenu(void)
strcpy(buf, " ");
PrintUserMenuStr(buf, 0);
sprintf(buf, " Âíåñèòå äåíüãè");
sprintf(buf, " Âíåñèòå äåíüãè");
PrintUserMenuStr(buf, 1);
accmoney = GetAcceptedMoney();
@ -1021,13 +1045,13 @@ void UserPrintErrorMenu(void)
sprintf(buf, "ÎØÈÁÊÀ");
PrintUserMenuStr(buf, 0);
CPU_INT08U errcode = 0;
sprintf(buf, "ÎØÈÁÊÀ ÕÎÏÏÅÐÀ");
sprintf(buf, "Õîïïåð ïóñò");
PrintUserMenuStr(buf, 1);
GetFirstCriticalFiscalError(&errcode);
GetDataItem(&JournalErrorNumberDesc0, (CPU_INT08U*)buf, errcode);
sprintf(buf, "");
PrintUserMenuStr(buf, 2);
GetDataItem(&JournalErrorNumberDesc1, (CPU_INT08U*)buf, errcode);
PrintUserMenuStr(buf, 3);
PrintUserMenuStr(buf, 3);
}
/*
else if (!FReportTest())
@ -1061,6 +1085,19 @@ void WorkServer(void)
}
void UserPrintCoinOut(CPU_INT32U coin)
{
char buf[32];
sprintf(buf, " ");
PrintUserMenuStr(buf, 0);
sprintf(buf, "Ïîëó÷èòå ðàçìåí");
PrintUserMenuStr(buf, 1);
sprintf(buf, "%d æåòîíîâ", coin);
PrintUserMenuStr(buf, 2);
sprintf(buf, " ");
PrintUserMenuStr(buf, 3);
}
void UserPrintPrintBillMenu(void)
{
char buf[32];

View File

@ -135,10 +135,10 @@ void GetEventStr(char* str, char event)
{
switch (event){
case JOURNAL_EVENT_MONEY_NOTE:
sprintf(str, "Âí.êóïþðà ");
sprintf(str, "Ïðèíÿòà.êóïþðà ");
break;
case JOURNAL_EVENT_MONEY_COIN:
sprintf(str, "Âí.ìîíåòû ");
sprintf(str, "Ïðèíÿòà.ìîíåòà ");
break;
case JOURNAL_EVENT_START_SESSION:
sprintf(str, "Ïå÷àòü ÷åêà ");
@ -177,11 +177,14 @@ void GetEventStr(char* str, char event)
sprintf(str, "E-mail îòïð.óñïåøíî");
break;
case JOURNAL_EVENT_MONEY_BANK:
sprintf(str, "Âí.áåçíàë ");
sprintf(str, "Áåçíàë.îïëàòà ");
break;
case JOURNAL_EVENT_PRINT_BILL_ONLINE:
sprintf(str, "Ïå÷àòü ÷åêà áåçíàë");
break;
case JOURNAL_EVENT_COIN_OUT:
sprintf(str, "Âûäàíî");
break;
default:
sprintf(str, "íåò");
break;
@ -342,7 +345,7 @@ void IncCounter(CPU_INT32U time, CPU_INT32U money)
long_ctrs.CounterMoneyLong += money;
long_ctrs.crc = CRC16((unsigned char*)&long_ctrs, offsetof(TCountersLong, crc));
WriteArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
}
}
void IncCounterBank(CPU_INT32U money)
{
@ -361,6 +364,23 @@ void IncCounterBank(CPU_INT32U money)
WriteArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
}
void IncCounterCoinOut(CPU_INT32U money)
{
CPU_INT32U m;
TCountersLong long_ctrs;
// óâåëè÷èì êîëè÷åñòâî âûäàííûõ æåòîíîâ
ReadArrayFram(offsetof(TFramMap, Counters.CounterCoinOut), sizeof(CPU_INT32U), (unsigned char*)&m);
m+=money;
WriteArrayFram(offsetof(TFramMap, Counters.CounterCoinOut), sizeof(CPU_INT32U), (unsigned char*)&m);
// óâåëè÷èì äëèííûå ñ÷åò÷èêè
ReadArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
long_ctrs.CounterCoinOutLong += money;
long_ctrs.crc = CRC16((unsigned char*)&long_ctrs, offsetof(TCountersLong, crc));
WriteArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
}
void IncCounterCoin(CPU_INT32U money)
{
CPU_INT32U m;
@ -383,7 +403,7 @@ void IncCounterCash(CPU_INT32U money)
CPU_INT32U m;
TCountersLong long_ctrs;
// óâåëè÷èì êîëè÷åñòâî äåíåã ïîëó÷åííûõ ÷åðåç ìîíåòíèê
// óâåëè÷èì êîëè÷åñòâî äåíåã ïîëó÷åííûõ ÷åðåç êóïþðíèê
ReadArrayFram(offsetof(TFramMap, Counters.CounterCash), sizeof(CPU_INT32U), (unsigned char*)&m);
m+=money;
WriteArrayFram(offsetof(TFramMap, Counters.CounterCash), sizeof(CPU_INT32U), (unsigned char*)&m);
@ -395,6 +415,23 @@ void IncCounterCash(CPU_INT32U money)
WriteArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
}
void IncCounterAllCash(CPU_INT32U money)
{
CPU_INT32U m;
TCountersLong long_ctrs;
// óâåëè÷èì êîëè÷åñòâî äåíåã ïîëó÷åííûõ ÷åðåç êóïþðíèê
ReadArrayFram(offsetof(TFramMap, Counters.CounterAllCash), sizeof(CPU_INT32U), (unsigned char*)&m);
m+=money;
WriteArrayFram(offsetof(TFramMap, Counters.CounterAllCash), sizeof(CPU_INT32U), (unsigned char*)&m);
// óâåëè÷èì äëèííûå ñ÷åò÷èêè
ReadArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
long_ctrs.CounterAllCashLong += money;
long_ctrs.crc = CRC16((unsigned char*)&long_ctrs, offsetof(TCountersLong, crc));
WriteArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
}
CPU_INT32U GetShortMoney()
{
CPU_INT32U money;
@ -422,7 +459,7 @@ void CheckLongCounters(void)
void ClearCounters(void)
{
SetArrayFram(offsetof(TFramMap, Counters), sizeof(CPU_INT32U)*3, 0x00);
SetArrayFram(offsetof(TFramMap, Counters.CounterCoin), sizeof(CPU_INT32U)*3, 0x00);
SetArrayFram(offsetof(TFramMap, Counters.CounterCoinOut), sizeof(CPU_INT32U)*5, 0x00);
}
/// èíêðåìåíò ñ÷åò÷èêà êóïþð ïî íîìèíàëàì
@ -456,7 +493,7 @@ void ClearBillnomCounter(void)
// ñåðâåð îøèáîê (çàíåñåíèå îøèáîê â æóðíàë)
void ErrorServer(void)
{
for (int i = ERROR_VALIDATOR_CONN; i < JOURNAL_EVENTS_COUNT; i++)
for (int i = ERROR_HOPPER; i < JOURNAL_EVENTS_COUNT; i++)
{
if (!(PrevFlags[i/32] & (1L<<(i%32)))
&& (TstErrorFlag(i)))

View File

@ -30,76 +30,77 @@ typedef struct{
#define JOURNAL_EVENT_EMAIL_OK 14 // ïðàâèëüíî îòïðàâëåí email
#define JOURNAL_EVENT_EMAIL_FAIL 15 // îøèáêà ïðè îòïðàâêå email
#define JOURNAL_EVENT_MONEY_BANK 16 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ áàíêîâñêîãî òåðìèíàëà (êîë-âî ðóáëåé)
#define JOURNAL_EVENT_PRINT_BILL_ONLINE 17 // ïå÷àòü ÷åêà ñ äåíüãàìè ñ áàíêîâñêîãî òåðìèíàëà
#define JOURNAL_EVENT_FTP_SEND 18 // ñîáûòèå îòïðàâêè æóðíàëà
#define EVENT_FULL_MONEY_HOPPER 19 // õîïïåð - çàïîëíåí
#define JOURNAL_EVENT_COIN_OUT 20 // âûäà÷à æåòîíà
#define ERROR_HOPPER 21 // îøèáêà õîïïåðà
#define ERROR_NO_MONEY_HOPPER 22 // îøèáêà õîïïåðà - êîí÷èëèñü äåíüãè
// îøèáêà ñâÿçè ñ êóïþðíèêîì
#define ERROR_VALIDATOR_CONN 16
#define ERROR_VALIDATOR_CONN 23
// êðèòè÷åñêàÿ îøèáêà ðàáîòû êóïþðíèêà
#define ERROR_VALIDATOR_FAILURE 17
#define ERROR_VALIDATOR_FAILURE 24
// íåêðèòè÷åñêèå îøèáêè êóïþðîïðèåìíèêà
// Âûáðîñ êóïþðû ïðè çàìèíå
#define ERROR_VALIDATOR_INSERTION 18
#define ERROR_VALIDATOR_INSERTION 25
// Âûáðîñ êóïþðû ïî ìàã.äàò÷èêó
#define ERROR_VALIDATOR_MAGNETIC 19
#define ERROR_VALIDATOR_MAGNETIC 26
// Âûáðîñ êóïþðû ïðè òðàíñïîðòèðîâêå
#define ERROR_VALIDATOR_CONVEYING 20
#define ERROR_VALIDATOR_CONVEYING 27
// Âûáðîñ êóïþðû ïî èäåíòèôèêàöèè
#define ERROR_VALIDATOR_IDENT 21
#define ERROR_VALIDATOR_IDENT 28
// Âûáðîñ êóïþðû ïî âåðèôèêàöèè
#define ERROR_VALIDATOR_VRFY 22
#define ERROR_VALIDATOR_VRFY 29
// Âûáðîñ êóïþðû ïî îïòè÷.äàò÷èêó
#define ERROR_VALIDATOR_OPT 23
#define ERROR_VALIDATOR_OPT 30
// Âûáðîñ êóïþðû ïî çàïðåòó
#define ERROR_VALIDATOR_INHIBIT 24
#define ERROR_VALIDATOR_INHIBIT 31
// Âûáðîñ êóïþðû ïî åìêîñòíîìó äàò÷èêó
#define ERROR_VALIDATOR_CAP 25
#define ERROR_VALIDATOR_CAP 32
// Âûáðîñ êóïþðû ïî äëèíå
#define ERROR_VALIDATOR_LNG 26
#define ERROR_VALIDATOR_LNG 33
// Êàññåòà çàïîëíåíà
#define ERROR_STACKER_FULL 27
#define ERROR_STACKER_FULL 34
// Êàññåòà îòñóòñòâóåò
#define ERROR_STACKER_REMOVED 28
#define ERROR_STACKER_REMOVED 35
// Çàìèí â êóïþðîïðèåìíèêå
#define ERROR_BV_JAMMED 29
#define ERROR_BV_JAMMED 36
// Çàìèí â êàññåòå
#define ERROR_ST_JAMMED 30
#define ERROR_ST_JAMMED 37
// Ïîïûòêà îáìàíà
#define ERROR_CHEATED 31
#define ERROR_CHEATED 38
// Îøèáêà ñòåêåðíîãî ìîòîðà
#define ERROR_FLR_STACKER 32
#define ERROR_FLR_STACKER 39
// Îøèáêà ñêîðîñòè òðàíñïîðò.ìîòîðà
#define ERROR_TR_SPEED 33
#define ERROR_TR_SPEED 40
// Îøèáêà òðàíñïîðò.ìîòîðà
#define ERROR_FLR_TRANSPORT 34
#define ERROR_FLR_TRANSPORT 41
// Îøèáêà ìåõàíèçìà âûðàâíèâàíèÿ
#define ERROR_FLR_ALIGNIN 35
#define ERROR_FLR_ALIGNIN 42
// Êàññåòà îòñóòñòâóåò
#define ERROR_FLR_INIT_CAS 36
#define ERROR_FLR_INIT_CAS 43
// Îøèáêà îïòèêè
#define ERROR_FLR_OPT 37
#define ERROR_FLR_OPT 44
// Îøèáêà ìàã.äàò÷èêà
#define ERROR_FLR_MAG 38
#define ERROR_FLR_MAG 45
// Îøèáêà åìêîñòíîãî äàò÷èêà
#define ERROR_FLR_CAP 39
#define ERROR_FLR_CAP 46
// îøèáêà ñâÿçè ñ ìîäåìîì
#define ERROR_MODEM_CONN 40
#define ERROR_MODEM_CONN 47
// îøèáêà ñâÿçè ñ ôèñêàëüíèêîì
#define ERROR_FR_CONN 41
#define ERROR_FR_CONN 48
// ÂÑÅ ÎØÈÁÊÈ ÔÐ ÔÀÒÀËÜÍÛÅ
#define ERROR_FR 42
#define JOURNAL_EVENT_MONEY_BANK (ERROR_FR+FR_ERROR_NUMBER) + 1 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ áàíêîâñêîãî òåðìèíàëà (êîë-âî ðóáëåé)
#define JOURNAL_EVENT_PRINT_BILL_ONLINE JOURNAL_EVENT_MONEY_BANK + 1 // ïå÷àòü ÷åêà ñ äåíüãàìè ñ áàíêîâñêîãî òåðìèíàëà
#define ERROR_FR 49
#define ERROR_HOPPER JOURNAL_EVENT_PRINT_BILL_ONLINE + 1 // îøèáêà õîïïåðà
#define ERROR_NO_MONEY_HOPPER ERROR_HOPPER + 1 // îøèáêà õîïïåðà - êîí÷èëèñü äåíüãè
// ñîáûòèå îòïðàâêè æóðíàëà
#define JOURNAL_EVENT_FTP_SEND ERROR_NO_MONEY_HOPPER + 1
#define JOURNAL_EVENTS_COUNT JOURNAL_EVENT_FTP_SEND // ÷èñëî ñîáûòèé
#define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé
// êàíàë
CPU_INT08U channel;
@ -125,8 +126,10 @@ typedef struct{
// îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå)
CPU_INT32U BillsCount;
CPU_INT32U CounterCoin; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCash; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterCoinOut; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCoin; // ñ÷åò÷èê ïîëó÷åííûõ ìîíåò
CPU_INT32U CounterCash; // ñ÷åò÷èê ïîëó÷åííûõ Áàíêòíîò
CPU_INT32U CounterAllCash; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBank; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
}TCounters;
@ -138,8 +141,10 @@ typedef struct{
CPU_INT32U CounterTimeLong;
CPU_INT32U CounterMoneyLong;
CPU_INT32U CounterCoinLong; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCashLong; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterCoinOutLong; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCoinLong; // ñ÷åò÷èê ïîëó÷åííûõ ìîíåò
CPU_INT32U CounterCashLong; // ñ÷åò÷èê ïîëó÷åííûõ áàíêíîò
CPU_INT32U CounterAllCashLong; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBankLong; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
CPU_INT16U crc;
@ -159,8 +164,10 @@ extern void GetEventStr(char* str, char event);
extern int GetEventRecord(TEventRecord* record, CPU_INT32U index);
extern void IncCounter(CPU_INT32U time, CPU_INT32U money);
extern void IncCounterBank(CPU_INT32U money);
extern void IncCounterCoinOut(CPU_INT32U money);
extern void IncCounterCoin(CPU_INT32U money);
extern void IncCounterCash(CPU_INT32U money);
extern void IncCounterAllCash(CPU_INT32U money);
extern void ClearCounters(void);
extern void ErrorServer(void);
extern int TstCriticalValidatorErrors(void);

View File

@ -666,7 +666,7 @@ TDataDescStruct const EnableValidatorDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableValidatorList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
1 // значение по умолчанию
0 // значение по умолчанию
};
/*************************************
@ -690,7 +690,7 @@ TDataDescStruct const EnableBankDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableValidatorList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0 // значение по умолчанию
1 // значение по умолчанию
};
/*************************************
@ -882,7 +882,7 @@ TDataDescStruct const EnableCoinDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableCoinList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
1
};
/*************************************
@ -906,7 +906,7 @@ TDataDescStruct const CoinPerPulseDesc = {
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
1 // значение по умолчанию
10 // значение по умолчанию
};
@ -1402,30 +1402,6 @@ TDataDescStruct const PeriodWeekdaysIndexDesc = {
0
};
/*************************************
Цена по выходным
*************************************/
TRangeValueULONG const PriceRange = {1, 10000};
CPU_INT08U const PriceName[] = "Цена,руб.";
TDataDescStruct const PriceDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
1, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, ChannelConfig.Price), // указатель на переменную или адрес FRAM
(void*)&PriceRange, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
PriceName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
100
};
/*************************************
Цена по выходным
*************************************/
@ -1738,10 +1714,33 @@ TDataDescStruct const PrintXReportDesc = {
Ошибка в журнале ошибок
*************************************/
TRangeValueULONG const ErrorNumberRange = {0, JOURNAL_EVENTS_COUNT - 1};
CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"нет", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {
"нет",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"Отчет отправлен",
"Хоппер заполнен",
"Выдано",
"Ошибка хоппера",
"Хоппер пуст",
"ошибка связи с",
"ошибка работы",
"1Ch60h-выбр.купюры",
@ -1768,7 +1767,6 @@ CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"
"к/п:67h-ошибка емк.",
"ошибка",
"ошибка",
"ФР:01h-Неизвестная",
"ФР:02h-Неверное",
"ФР:03h-Ошибка ФН",
@ -1877,12 +1875,7 @@ CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"
"ФР:C2h-Превышение",
"ФР:C4h-Несовпадение",
"ФР:C7h-Поле не",
"ФР:С8h-Отсутствуют",
"",
"",
"Ошибка хоппера",
"Хоппер пуст"
"ФР:С8h-Отсутствуют"
};
TDataDescStruct const JournalErrorNumberDesc0 = {
@ -1907,6 +1900,15 @@ CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] = {"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"",
"",
"",
"",
"",
"",
"",
"купюроприемником",
"купюроприемника",
"при замине",
@ -2042,11 +2044,7 @@ CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] = {"", "", "", "",
"напряжения",
"номеров смен",
"редактируется",
"импульсы тахо.",
"",
"",
"",
"",
"импульсы тахо."
};
TDataDescStruct const JournalErrorNumberDesc1 = {
@ -2407,7 +2405,7 @@ TDataDescStruct const CounterRunDesc = {
/*************************************
Общий счетчик денег
*************************************/
CPU_INT08U const CounterMoneyName[] = "Деньги,руб.";
CPU_INT08U const CounterMoneyName[] = "Сумма нал.,руб.";
TDataDescStruct const CounterMoneyDesc = {
DATA_DESC_VIEW, // тип дескриптора
@ -2450,6 +2448,29 @@ TDataDescStruct const CounterTimeDesc = {
0
};
/*************************************
Выданные жетоны
*************************************/
CPU_INT08U const CounterCoinOutName[] = "Жетоны,руб.";
TDataDescStruct const CounterCoinOutDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, Counters.CounterCoinOut), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
CounterCoinOutName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Общий счетчик денег через монетник
*************************************/
@ -2496,6 +2517,29 @@ TDataDescStruct const CounterCashDesc = {
0
};
/*************************************
Общий счетчик налиных денег
*************************************/
CPU_INT08U const CounterBillName[] = "Сумма нал.,руб.";
TDataDescStruct const CounterAllCashDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, Counters.CounterAllCash), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
CounterBillName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Общий счетчик денег через банковский терминал
*************************************/
@ -2561,6 +2605,27 @@ TDataDescStruct const CounterLongMoneyDesc = {
0
};
/*************************************
Выданные жетоны ДЛИННЫЙ
*************************************/
TDataDescStruct const CounterLongCoinOutDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, CountersLong.CounterCoinOutLong), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
CounterCoinOutName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Общий счетчик денег через монетник ДЛИННЫЙ
*************************************/
@ -2603,6 +2668,27 @@ TDataDescStruct const CounterLongCashDesc = {
0
};
/*************************************
Общий счетчик налиных денег ДЛИННЫЙ
*************************************/
TDataDescStruct const CounterLongAllCashDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, CountersLong.CounterAllCashLong), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
CounterBillName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Общий счетчик денег через банковский терминал ДЛИННЫЙ
*************************************/
@ -2762,7 +2848,7 @@ TDataDescStruct const TaxSystemDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
TaxSystemList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
1
};
/*************************************
@ -2794,7 +2880,7 @@ TDataDescStruct const TaxFormatDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
TaxFormatList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
1
4
};
/*************************************
@ -2822,7 +2908,7 @@ TDataDescStruct const SubjSellDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
SubjSellList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
2
};
/*************************************
@ -2883,7 +2969,7 @@ TDataDescStruct const ServiceNameDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
ServiceNameList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0 // значение по умолчанию
1 // значение по умолчанию
};
/*************************************
@ -3556,7 +3642,7 @@ TDataDescStruct const IncasTimeDesc = {
/*************************************
Стоимость жетона, руб. хоппера
*************************************/
CPU_INT08U const HopperCostName[] = "Жетон, руб";
CPU_INT08U const HopperCostName[] = "Жетон,руб";
TRangeValueULONG const HopperCostRange = {0, 9999};
TDataDescStruct const HopperCostDesc = {
@ -3580,7 +3666,7 @@ TDataDescStruct const HopperCostDesc = {
/*************************************
остановка мотора хоппера, сек
*************************************/
CPU_INT08U const HopperStopEngineName[] = "Останов, сек";
CPU_INT08U const HopperStopEngineName[] = "Останов,сек";
TRangeValueULONG const HopperStopEngineRange = {1, 20};
TDataDescStruct const HopperStopEngineDesc = {
@ -3604,7 +3690,7 @@ TDataDescStruct const HopperStopEngineDesc = {
/*************************************
Хранить кредит, мин
*************************************/
CPU_INT08U const HopperSaveCreditName[] = "Кредит, мин";
CPU_INT08U const HopperSaveCreditName[] = "Кредит,мин";
TRangeValueULONG const HopperSaveCreditRange = {0, 60};
TDataDescStruct const HopperSaveCreditDesc = {
@ -4078,8 +4164,6 @@ const TDataDescArrayStruct AllDataArray[] =
{&EnableFiscalDayClearDesc, "EnableFiscalDayClearDesc"},
{&PrintTimeoutDesc, "PrintTimeoutDesc"},
{&PriceDesc, "PriceDesc"},
{&ServiceNameDesc, "ServiceNameDesc"},
{&CashPulseLenDesc, "CashPulseLenDesc"},
@ -4120,6 +4204,14 @@ const TDataDescArrayStruct AllDataArray[] =
{&FtpServerPassDesc, "FtpServerPassDesc"},
#endif
{&TaxSystemDesc,"TaxSystemDesc"},
{&TaxFormatDesc,"TaxFormatDesc"},
{&SubjSellDesc, "SubjSellDesc"},
{&DisableFiscalErrorsDesc, "DisableFiscalErrorsDesc"},
{&CommandV2Desc, "CommandV2Desc"},
{&HopperLevelDesc, "HopperLevelDesc"},
{NULL, ""}
};

View File

@ -207,12 +207,16 @@ extern TDataDescStruct const CounterLongRunDesc;
extern TDataDescStruct const CounterLongMoneyDesc;
extern TDataDescStruct const CounterLongTimeDesc;
extern TDataDescStruct const CounterLongCoinOutDesc;
extern TDataDescStruct const CounterLongCoinDesc;
extern TDataDescStruct const CounterLongCashDesc;
extern TDataDescStruct const CounterLongAllCashDesc;
extern TDataDescStruct const CounterLongBankDesc;
extern TDataDescStruct const CounterCoinOutDesc;
extern TDataDescStruct const CounterCoinDesc;
extern TDataDescStruct const CounterCashDesc;
extern TDataDescStruct const CounterAllCashDesc;
extern TDataDescStruct const CounterBankDesc;
extern TDataDescStruct const MasterPassTempDesc;
@ -241,8 +245,6 @@ extern TDataDescStruct const CashModeDesc;
extern TDataDescStruct const CashPerPulseDesc;
extern TDataDescStruct const PrintTimeoutDesc;
extern TDataDescStruct const PriceDesc;
extern void OnChangeInitByDefault(void);
extern void OnChangeServiceName(void);

View File

@ -140,7 +140,7 @@ const CPU_INT08U str_ServiceMenu_0[] = "
const CPU_INT08U str_ServiceMenu_1[] = "Íàñòðîéêè";
const CPU_INT08U str_ServiceMenu_2[] = "Ñòàòèñòèêà";
const CPU_INT08U str_ServiceMenu_3[] = "Æóðíàëû";
const CPU_INT08U str_ServiceMenu_4[] = "Îò÷åòû";
const CPU_INT08U str_ServiceMenu_4[] = "Êîììàíäû ÔÐ";
const TMenuLine line_ServiceMenu_0 = {
MENU_LINE_STRING, // òèï ïóíêòà ìåíþ
@ -386,16 +386,17 @@ const TMenuLine line_CommonCountersMenu_0 = {
const TMenuLine line_CommonCountersMenu_1 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CounterRunDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&CounterCoinOutDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CommonCountersMenu_2 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CounterMoneyDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&CounterCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CommonCountersMenu_3 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
@ -403,11 +404,10 @@ const TMenuLine line_CommonCountersMenu_3 = {
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CommonCountersMenu_4 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CounterCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&CounterAllCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
@ -436,29 +436,28 @@ const TMenuLine line_CommonCountersLongMenu_0 = {
const TMenuLine line_CommonCountersLongMenu_1 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CounterLongRunDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&CounterLongCoinOutDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CommonCountersLongMenu_2 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CounterLongMoneyDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&CounterLongCoinDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CommonCountersLongMenu_3 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CounterLongCoinDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&CounterLongCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_CommonCountersLongMenu_4 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&CounterLongCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&CounterLongAllCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
@ -554,7 +553,7 @@ const TMenuLine line_SettingsMenu_9 = {
};
#endif
const TMenuLineArray arr_SettingsMenuArray[] = {&line_SettingsMenu_0, &line_SettingsMenu_2, &line_SettingsMenu_5, &line_SettingsMenu_3, &line_SettingsMenu_6, &line_SettingsMenu_8, &line_SettingsMenu_9, NULL};
const TMenuLineArray arr_SettingsMenuArray[] = {&line_SettingsMenu_0, &line_SettingsMenu_2, &line_SettingsMenu_8, &line_SettingsMenu_9, &line_SettingsMenu_5, &line_SettingsMenu_3, &line_SettingsMenu_6, NULL};
const TMenuPanel SettingsMenuPanel[] = {arr_SettingsMenuArray, NULL, 7, MENU_PANEL_STANDARD};
@ -1013,28 +1012,21 @@ const TMenuLine line_FrMenu_9 = {
};
const TMenuLine line_FrMenu_10 = {
MENU_LINE_SHOW_DESC,
0,
(void*)&PriceDesc,
NULL
};
const TMenuLine line_FrMenu_11 = {
MENU_LINE_SHOW_DESC,
0,
(void*)&ServiceNameDesc,
NULL
};
const TMenuLine line_FrMenu_12 = {
const TMenuLine line_FrMenu_11 = {
MENU_LINE_SHOW_DESC,
0,
(void*)&DisableFiscalErrorsDesc,
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, 10, 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, NULL};
const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 9, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÍÅÒÎÏÐÈÅÌÍÈÊÀ
@ -1866,10 +1858,14 @@ void PrintEventJournalRecord(TEventRecord *record)
if (record->event)
{ // åñòü ñîáûòèå
GetEventStr(str_EventNumber, record->event);
if ((record->event == JOURNAL_EVENT_MONEY_NOTE) || (record->event == JOURNAL_EVENT_MONEY_COIN))
if ((record->event == JOURNAL_EVENT_MONEY_NOTE) || (record->event == JOURNAL_EVENT_MONEY_COIN) || (record->event == JOURNAL_EVENT_MONEY_BANK))
{
sprintf(str_EventData, "%d ðóá.", record->data);
}
else if (record->event == JOURNAL_EVENT_COIN_OUT)
{
sprintf(str_EventData, "%d æåòîíîâ.", record->data);
}
else if (record->event == JOURNAL_EVENT_START_SESSION)
{
sprintf(&str_EventNumber[strlen(str_EventNumber)], "");

View File

@ -339,7 +339,7 @@ void CoinDisable(void)
void CoinEnable(void)
{
// äëÿ ðàçðåøåíèÿ ìîíåòíèêà âûñòàâèì íèçêèé óðîâåíü
FIO0CLR_bit.P0_25 = 1;
FIO1CLR_bit.P1_31 = 1;
}
void BankDisable(void)
@ -496,20 +496,15 @@ CPU_INT32U input_register()
SETBIT(input, 2);
}
// 3 áèò
if (FIO1PIN_bit.P1_24)
if (FIO1PIN_bit.P1_23)
{
SETBIT(input, 3);
}
// 4 áèò
if (FIO1PIN_bit.P1_23)
if (FIO1PIN_bit.P1_24)
{
SETBIT(input, 4);
}
// 5 áèò
if (FIO1PIN_bit.P1_20)
{
SETBIT(input, 5);
}
return input;
}
@ -599,7 +594,7 @@ void InputCapture_ISR(void)
{
pend_signal_error_hopper_timestamp = OSTimeGet();
if ((FIO1PIN_bit.P1_23 && hopperLevel) || (!FIO1PIN_bit.P1_23 && !hopperLevel))
if (FIO1PIN_bit.P1_23)
{
pend_upsignal_error_hopper_counter = 1;
pend_downsignal_error_hopper_counter = 0;
@ -616,7 +611,7 @@ void InputCapture_ISR(void)
{
pend_signal_nomoney_hopper_timestamp = OSTimeGet();
if ((FIO1PIN_bit.P1_24 && hopperLevel) || (!FIO1PIN_bit.P1_24 && !hopperLevel))
if (FIO1PIN_bit.P1_24)
{
pend_upsignal_nomoney_hopper_counter = 1;
pend_downsignal_nomoney_hopper_counter = 0;

View File

@ -31,6 +31,8 @@ extern void SetBankPulseParam(CPU_INT32U pulse, CPU_INT32U pause);
extern void SetHopperPulseParam(CPU_INT32U pulse, CPU_INT32U pause);
extern void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3, CPU_INT32U level4);
extern void initOutputPorts(void);
#define BIT(bit) (1UL << (bit))
#define SETBIT(Val,bit) ((Val) |= BIT(bit))

View File

@ -740,7 +740,7 @@ repeat_sell1:
}
}
GetData(&PriceDesc, &price, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&HopperCostDesc, &price, 0, DATA_FLAG_SYSTEM_INDEX);
price *= 100;
count = (cash / price) * 1000;
if (ext)

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
Checksum=-1470911039
Checksum=1862297616
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
@ -40,6 +40,8 @@ ShowSource=1
WatchCond=_ 0
Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
[watch_formats]
Fmt0={W}0:error 3 0
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""

View File

@ -12,7 +12,7 @@
<Column0>293</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
<Column0>218</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Build>
@ -30,7 +30,7 @@
<Windows>
<Wnd0>
<Wnd2>
<Tabs>
<Tab>
<Identity>TabID-22094-17165</Identity>
@ -42,7 +42,7 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<SelectedTab>0</SelectedTab></Wnd2><Wnd3>
<Tabs>
<Tab>
<Identity>TabID-15821-17283</Identity>
@ -58,20 +58,20 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd1></Windows>
<SelectedTab>0</SelectedTab></Wnd3></Windows>
<Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>103</YPos><SelStart>4751</SelStart><SelEnd>4762</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>358</YPos><SelStart>11446</SelStart><SelEnd>11447</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>409</SelStart><SelEnd>409</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>531</YPos><SelStart>12394</SelStart><SelEnd>12394</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.h</Filename><XPos>0</XPos><YPos>18</YPos><SelStart>882</SelStart><SelEnd>882</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>186</SelStart><SelEnd>186</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\version.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>77</SelStart><SelEnd>77</SelEnd></Tab><ActiveTab>6</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>9</YPos><SelStart>491</SelStart><SelEnd>491</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\ftp_app.c</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>10861</SelStart><SelEnd>10861</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\ftp_app.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>273</SelStart><SelEnd>273</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>3210</YPos><SelStart>147771</SelStart><SelEnd>147771</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>279</YPos><SelStart>10411</SelStart><SelEnd>10411</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>133</SelStart><SelEnd>133</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1662</SelStart><SelEnd>1662</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>1018</YPos><SelStart>40445</SelStart><SelEnd>40445</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>41</YPos><SelStart>2568</SelStart><SelEnd>2568</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>696</YPos><SelStart>24884</SelStart><SelEnd>24884</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>409</SelStart><SelEnd>409</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.h</Filename><XPos>0</XPos><YPos>18</YPos><SelStart>882</SelStart><SelEnd>882</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>1144</SelStart><SelEnd>1159</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\version.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>77</SelStart><SelEnd>77</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>35</YPos><SelStart>1394</SelStart><SelEnd>1417</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\ftp_app.c</Filename><XPos>0</XPos><YPos>15</YPos><SelStart>10861</SelStart><SelEnd>10861</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\ftp_app.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>273</SelStart><SelEnd>273</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>4189</YPos><SelStart>193572</SelStart><SelEnd>193572</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>197</YPos><SelStart>7335</SelStart><SelEnd>7353</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>219</SelStart><SelEnd>219</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>31</YPos><SelStart>1149</SelStart><SelEnd>1149</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>808</YPos><SelStart>41572</SelStart><SelEnd>41572</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>41</YPos><SelStart>2568</SelStart><SelEnd>2568</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>739</YPos><SelStart>29563</SelStart><SelEnd>29563</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>729</YPos><SelStart>19424</SelStart><SelEnd>19424</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\os_ii\source\os_core.c</Filename><XPos>0</XPos><YPos>1365</YPos><SelStart>56947</SelStart><SelEnd>56947</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>16</YPos><SelStart>1746</SelStart><SelEnd>1768</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>170</YPos><SelStart>4820</SelStart><SelEnd>4820</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>629</YPos><SelStart>13928</SelStart><SelEnd>13928</SelEnd></Tab><ActiveTab>18</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\tcpip\NIC\ETHER\LPC2368\net_nic.c</Filename><XPos>0</XPos><YPos>797</YPos><SelStart>42551</SelStart><SelEnd>42551</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
<Top><Row0><Sizes><Toolbar-04f729c8><key>iaridepm.enu1</key></Toolbar-04f729c8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>506</Bottom><Right>384</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>282577</sizeVertCX><sizeVertCY>700690</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>174</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>176</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>242759</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>275862</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
<Top><Row0><Sizes><Toolbar-053529c8><key>iaridepm.enu1</key></Toolbar-053529c8></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>521</Bottom><Right>309</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>227672</sizeVertCX><sizeVertCY>721379</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>159</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>161</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>222069</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>275862</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>

File diff suppressed because it is too large Load Diff