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

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

View File

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

View File

@ -135,10 +135,10 @@ void GetEventStr(char* str, char event)
{ {
switch (event){ switch (event){
case JOURNAL_EVENT_MONEY_NOTE: case JOURNAL_EVENT_MONEY_NOTE:
sprintf(str, "Âí.êóïþðà "); sprintf(str, "Ïðèíÿòà.êóïþðà ");
break; break;
case JOURNAL_EVENT_MONEY_COIN: case JOURNAL_EVENT_MONEY_COIN:
sprintf(str, "Âí.ìîíåòû "); sprintf(str, "Ïðèíÿòà.ìîíåòà ");
break; break;
case JOURNAL_EVENT_START_SESSION: case JOURNAL_EVENT_START_SESSION:
sprintf(str, "Ïå÷àòü ÷åêà "); sprintf(str, "Ïå÷àòü ÷åêà ");
@ -177,11 +177,14 @@ void GetEventStr(char* str, char event)
sprintf(str, "E-mail îòïð.óñïåøíî"); sprintf(str, "E-mail îòïð.óñïåøíî");
break; break;
case JOURNAL_EVENT_MONEY_BANK: case JOURNAL_EVENT_MONEY_BANK:
sprintf(str, "Âí.áåçíàë "); sprintf(str, "Áåçíàë.îïëàòà ");
break; break;
case JOURNAL_EVENT_PRINT_BILL_ONLINE: case JOURNAL_EVENT_PRINT_BILL_ONLINE:
sprintf(str, "Ïå÷àòü ÷åêà áåçíàë"); sprintf(str, "Ïå÷àòü ÷åêà áåçíàë");
break; break;
case JOURNAL_EVENT_COIN_OUT:
sprintf(str, "Âûäàíî");
break;
default: default:
sprintf(str, "íåò"); sprintf(str, "íåò");
break; break;
@ -361,6 +364,23 @@ void IncCounterBank(CPU_INT32U money)
WriteArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs); 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) void IncCounterCoin(CPU_INT32U money)
{ {
CPU_INT32U m; CPU_INT32U m;
@ -383,7 +403,7 @@ void IncCounterCash(CPU_INT32U money)
CPU_INT32U m; CPU_INT32U m;
TCountersLong long_ctrs; TCountersLong long_ctrs;
// óâåëè÷èì êîëè÷åñòâî äåíåã ïîëó÷åííûõ ÷åðåç ìîíåòíèê // óâåëè÷èì êîëè÷åñòâî äåíåã ïîëó÷åííûõ ÷åðåç êóïþðíèê
ReadArrayFram(offsetof(TFramMap, Counters.CounterCash), sizeof(CPU_INT32U), (unsigned char*)&m); ReadArrayFram(offsetof(TFramMap, Counters.CounterCash), sizeof(CPU_INT32U), (unsigned char*)&m);
m+=money; m+=money;
WriteArrayFram(offsetof(TFramMap, Counters.CounterCash), sizeof(CPU_INT32U), (unsigned char*)&m); 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); 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 GetShortMoney()
{ {
CPU_INT32U money; CPU_INT32U money;
@ -422,7 +459,7 @@ void CheckLongCounters(void)
void ClearCounters(void) void ClearCounters(void)
{ {
SetArrayFram(offsetof(TFramMap, Counters), sizeof(CPU_INT32U)*3, 0x00); 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) 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))) if (!(PrevFlags[i/32] & (1L<<(i%32)))
&& (TstErrorFlag(i))) && (TstErrorFlag(i)))

View File

@ -30,76 +30,77 @@ typedef struct{
#define JOURNAL_EVENT_EMAIL_OK 14 // ïðàâèëüíî îòïðàâëåí email #define JOURNAL_EVENT_EMAIL_OK 14 // ïðàâèëüíî îòïðàâëåí email
#define JOURNAL_EVENT_EMAIL_FAIL 15 // îøèáêà ïðè îòïðàâêå 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 ERROR_FR 49
#define JOURNAL_EVENT_MONEY_BANK (ERROR_FR+FR_ERROR_NUMBER) + 1 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ áàíêîâñêîãî òåðìèíàëà (êîë-âî ðóáëåé) #define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé
#define JOURNAL_EVENT_PRINT_BILL_ONLINE JOURNAL_EVENT_MONEY_BANK + 1 // ïå÷àòü ÷åêà ñ äåíüãàìè ñ áàíêîâñêîãî òåðìèíàëà
#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 // ÷èñëî ñîáûòèé
// êàíàë // êàíàë
CPU_INT08U channel; CPU_INT08U channel;
@ -125,8 +126,10 @@ typedef struct{
// îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå) // îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå)
CPU_INT32U BillsCount; CPU_INT32U BillsCount;
CPU_INT32U CounterCoin; // ñ÷åò÷èê âûäàííûõ æåòîíîâ CPU_INT32U CounterCoinOut; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCash; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ CPU_INT32U CounterCoin; // ñ÷åò÷èê ïîëó÷åííûõ ìîíåò
CPU_INT32U CounterCash; // ñ÷åò÷èê ïîëó÷åííûõ Áàíêòíîò
CPU_INT32U CounterAllCash; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBank; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã CPU_INT32U CounterBank; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
}TCounters; }TCounters;
@ -138,8 +141,10 @@ typedef struct{
CPU_INT32U CounterTimeLong; CPU_INT32U CounterTimeLong;
CPU_INT32U CounterMoneyLong; CPU_INT32U CounterMoneyLong;
CPU_INT32U CounterCoinLong; // ñ÷åò÷èê âûäàííûõ æåòîíîâ CPU_INT32U CounterCoinOutLong; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCashLong; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ CPU_INT32U CounterCoinLong; // ñ÷åò÷èê ïîëó÷åííûõ ìîíåò
CPU_INT32U CounterCashLong; // ñ÷åò÷èê ïîëó÷åííûõ áàíêíîò
CPU_INT32U CounterAllCashLong; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBankLong; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã CPU_INT32U CounterBankLong; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
CPU_INT16U crc; CPU_INT16U crc;
@ -159,8 +164,10 @@ extern void GetEventStr(char* str, char event);
extern int GetEventRecord(TEventRecord* record, CPU_INT32U index); extern int GetEventRecord(TEventRecord* record, CPU_INT32U index);
extern void IncCounter(CPU_INT32U time, CPU_INT32U money); extern void IncCounter(CPU_INT32U time, CPU_INT32U money);
extern void IncCounterBank(CPU_INT32U money); extern void IncCounterBank(CPU_INT32U money);
extern void IncCounterCoinOut(CPU_INT32U money);
extern void IncCounterCoin(CPU_INT32U money); extern void IncCounterCoin(CPU_INT32U money);
extern void IncCounterCash(CPU_INT32U money); extern void IncCounterCash(CPU_INT32U money);
extern void IncCounterAllCash(CPU_INT32U money);
extern void ClearCounters(void); extern void ClearCounters(void);
extern void ErrorServer(void); extern void ErrorServer(void);
extern int TstCriticalValidatorErrors(void); extern int TstCriticalValidatorErrors(void);

View File

@ -666,7 +666,7 @@ TDataDescStruct const EnableValidatorDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк) DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableValidatorList, // указатель на список строк для индексного параметра EnableValidatorList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
1 // значение по умолчанию 0 // значение по умолчанию
}; };
/************************************* /*************************************
@ -690,7 +690,7 @@ TDataDescStruct const EnableBankDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк) DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableValidatorList, // указатель на список строк для индексного параметра EnableValidatorList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
0 // значение по умолчанию 1 // значение по умолчанию
}; };
/************************************* /*************************************
@ -882,7 +882,7 @@ TDataDescStruct const EnableCoinDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк) DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableCoinList, // указатель на список строк для индексного параметра EnableCoinList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
0 1
}; };
/************************************* /*************************************
@ -906,7 +906,7 @@ TDataDescStruct const CoinPerPulseDesc = {
DATA_NO_INDEX, // признак индексного параметра (список строк) DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
1 // значение по умолчанию 10 // значение по умолчанию
}; };
@ -1402,30 +1402,6 @@ TDataDescStruct const PeriodWeekdaysIndexDesc = {
0 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}; TRangeValueULONG const ErrorNumberRange = {0, JOURNAL_EVENTS_COUNT - 1};
CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"нет", "", "", "", CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {
"", "", "", "", "нет",
"", "", "", "", "",
"", "", "", "", "",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"Отчет отправлен",
"Хоппер заполнен",
"Выдано",
"Ошибка хоппера",
"Хоппер пуст",
"ошибка связи с", "ошибка связи с",
"ошибка работы", "ошибка работы",
"1Ch60h-выбр.купюры", "1Ch60h-выбр.купюры",
@ -1768,7 +1767,6 @@ CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"
"к/п:67h-ошибка емк.", "к/п:67h-ошибка емк.",
"ошибка", "ошибка",
"ошибка", "ошибка",
"ФР:01h-Неизвестная", "ФР:01h-Неизвестная",
"ФР:02h-Неверное", "ФР:02h-Неверное",
"ФР:03h-Ошибка ФН", "ФР:03h-Ошибка ФН",
@ -1877,12 +1875,7 @@ CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"
"ФР:C2h-Превышение", "ФР:C2h-Превышение",
"ФР:C4h-Несовпадение", "ФР:C4h-Несовпадение",
"ФР:C7h-Поле не", "ФР:C7h-Поле не",
"ФР:С8h-Отсутствуют", "ФР:С8h-Отсутствуют"
"",
"",
"Ошибка хоппера",
"Хоппер пуст"
}; };
TDataDescStruct const JournalErrorNumberDesc0 = { 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 = { TDataDescStruct const JournalErrorNumberDesc1 = {
@ -2407,7 +2405,7 @@ TDataDescStruct const CounterRunDesc = {
/************************************* /*************************************
Общий счетчик денег Общий счетчик денег
*************************************/ *************************************/
CPU_INT08U const CounterMoneyName[] = "Деньги,руб."; CPU_INT08U const CounterMoneyName[] = "Сумма нал.,руб.";
TDataDescStruct const CounterMoneyDesc = { TDataDescStruct const CounterMoneyDesc = {
DATA_DESC_VIEW, // тип дескриптора DATA_DESC_VIEW, // тип дескриптора
@ -2450,6 +2448,29 @@ TDataDescStruct const CounterTimeDesc = {
0 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 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 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 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, // признак индексного параметра (список строк) DATA_IS_INDEX, // признак индексного параметра (список строк)
TaxSystemList, // указатель на список строк для индексного параметра TaxSystemList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
0 1
}; };
/************************************* /*************************************
@ -2794,7 +2880,7 @@ TDataDescStruct const TaxFormatDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк) DATA_IS_INDEX, // признак индексного параметра (список строк)
TaxFormatList, // указатель на список строк для индексного параметра TaxFormatList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
1 4
}; };
/************************************* /*************************************
@ -2822,7 +2908,7 @@ TDataDescStruct const SubjSellDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк) DATA_IS_INDEX, // признак индексного параметра (список строк)
SubjSellList, // указатель на список строк для индексного параметра SubjSellList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
0 2
}; };
/************************************* /*************************************
@ -2883,7 +2969,7 @@ TDataDescStruct const ServiceNameDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк) DATA_IS_INDEX, // признак индексного параметра (список строк)
ServiceNameList, // указатель на список строк для индексного параметра ServiceNameList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE, 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}; TRangeValueULONG const HopperCostRange = {0, 9999};
TDataDescStruct const HopperCostDesc = { TDataDescStruct const HopperCostDesc = {
@ -3580,7 +3666,7 @@ TDataDescStruct const HopperCostDesc = {
/************************************* /*************************************
остановка мотора хоппера, сек остановка мотора хоппера, сек
*************************************/ *************************************/
CPU_INT08U const HopperStopEngineName[] = "Останов, сек"; CPU_INT08U const HopperStopEngineName[] = "Останов,сек";
TRangeValueULONG const HopperStopEngineRange = {1, 20}; TRangeValueULONG const HopperStopEngineRange = {1, 20};
TDataDescStruct const HopperStopEngineDesc = { TDataDescStruct const HopperStopEngineDesc = {
@ -3604,7 +3690,7 @@ TDataDescStruct const HopperStopEngineDesc = {
/************************************* /*************************************
Хранить кредит, мин Хранить кредит, мин
*************************************/ *************************************/
CPU_INT08U const HopperSaveCreditName[] = "Кредит, мин"; CPU_INT08U const HopperSaveCreditName[] = "Кредит,мин";
TRangeValueULONG const HopperSaveCreditRange = {0, 60}; TRangeValueULONG const HopperSaveCreditRange = {0, 60};
TDataDescStruct const HopperSaveCreditDesc = { TDataDescStruct const HopperSaveCreditDesc = {
@ -4078,8 +4164,6 @@ const TDataDescArrayStruct AllDataArray[] =
{&EnableFiscalDayClearDesc, "EnableFiscalDayClearDesc"}, {&EnableFiscalDayClearDesc, "EnableFiscalDayClearDesc"},
{&PrintTimeoutDesc, "PrintTimeoutDesc"}, {&PrintTimeoutDesc, "PrintTimeoutDesc"},
{&PriceDesc, "PriceDesc"},
{&ServiceNameDesc, "ServiceNameDesc"}, {&ServiceNameDesc, "ServiceNameDesc"},
{&CashPulseLenDesc, "CashPulseLenDesc"}, {&CashPulseLenDesc, "CashPulseLenDesc"},
@ -4120,6 +4204,14 @@ const TDataDescArrayStruct AllDataArray[] =
{&FtpServerPassDesc, "FtpServerPassDesc"}, {&FtpServerPassDesc, "FtpServerPassDesc"},
#endif #endif
{&TaxSystemDesc,"TaxSystemDesc"},
{&TaxFormatDesc,"TaxFormatDesc"},
{&SubjSellDesc, "SubjSellDesc"},
{&DisableFiscalErrorsDesc, "DisableFiscalErrorsDesc"},
{&CommandV2Desc, "CommandV2Desc"},
{&HopperLevelDesc, "HopperLevelDesc"},
{NULL, ""} {NULL, ""}
}; };

View File

@ -207,12 +207,16 @@ extern TDataDescStruct const CounterLongRunDesc;
extern TDataDescStruct const CounterLongMoneyDesc; extern TDataDescStruct const CounterLongMoneyDesc;
extern TDataDescStruct const CounterLongTimeDesc; extern TDataDescStruct const CounterLongTimeDesc;
extern TDataDescStruct const CounterLongCoinOutDesc;
extern TDataDescStruct const CounterLongCoinDesc; extern TDataDescStruct const CounterLongCoinDesc;
extern TDataDescStruct const CounterLongCashDesc; extern TDataDescStruct const CounterLongCashDesc;
extern TDataDescStruct const CounterLongAllCashDesc;
extern TDataDescStruct const CounterLongBankDesc; extern TDataDescStruct const CounterLongBankDesc;
extern TDataDescStruct const CounterCoinOutDesc;
extern TDataDescStruct const CounterCoinDesc; extern TDataDescStruct const CounterCoinDesc;
extern TDataDescStruct const CounterCashDesc; extern TDataDescStruct const CounterCashDesc;
extern TDataDescStruct const CounterAllCashDesc;
extern TDataDescStruct const CounterBankDesc; extern TDataDescStruct const CounterBankDesc;
extern TDataDescStruct const MasterPassTempDesc; extern TDataDescStruct const MasterPassTempDesc;
@ -241,8 +245,6 @@ extern TDataDescStruct const CashModeDesc;
extern TDataDescStruct const CashPerPulseDesc; extern TDataDescStruct const CashPerPulseDesc;
extern TDataDescStruct const PrintTimeoutDesc; extern TDataDescStruct const PrintTimeoutDesc;
extern TDataDescStruct const PriceDesc;
extern void OnChangeInitByDefault(void); extern void OnChangeInitByDefault(void);
extern void OnChangeServiceName(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_1[] = "Íàñòðîéêè";
const CPU_INT08U str_ServiceMenu_2[] = "Ñòàòèñòèêà"; const CPU_INT08U str_ServiceMenu_2[] = "Ñòàòèñòèêà";
const CPU_INT08U str_ServiceMenu_3[] = "Æóðíàëû"; const CPU_INT08U str_ServiceMenu_3[] = "Æóðíàëû";
const CPU_INT08U str_ServiceMenu_4[] = "Îò÷åòû"; const CPU_INT08U str_ServiceMenu_4[] = "Êîììàíäû ÔÐ";
const TMenuLine line_ServiceMenu_0 = { const TMenuLine line_ServiceMenu_0 = {
MENU_LINE_STRING, // òèï ïóíêòà ìåíþ MENU_LINE_STRING, // òèï ïóíêòà ìåíþ
@ -386,16 +386,17 @@ const TMenuLine line_CommonCountersMenu_0 = {
const TMenuLine line_CommonCountersMenu_1 = { const TMenuLine line_CommonCountersMenu_1 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
(void*)&CounterRunDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð (void*)&CounterCoinOutDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
const TMenuLine line_CommonCountersMenu_2 = { const TMenuLine line_CommonCountersMenu_2 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
(void*)&CounterMoneyDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð (void*)&CounterCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
const TMenuLine line_CommonCountersMenu_3 = { const TMenuLine line_CommonCountersMenu_3 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
@ -403,11 +404,10 @@ const TMenuLine line_CommonCountersMenu_3 = {
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
const TMenuLine line_CommonCountersMenu_4 = { const TMenuLine line_CommonCountersMenu_4 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
(void*)&CounterCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð (void*)&CounterAllCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
@ -436,29 +436,28 @@ const TMenuLine line_CommonCountersLongMenu_0 = {
const TMenuLine line_CommonCountersLongMenu_1 = { const TMenuLine line_CommonCountersLongMenu_1 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
(void*)&CounterLongRunDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð (void*)&CounterLongCoinOutDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
const TMenuLine line_CommonCountersLongMenu_2 = { const TMenuLine line_CommonCountersLongMenu_2 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
(void*)&CounterLongMoneyDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð (void*)&CounterLongCoinDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
const TMenuLine line_CommonCountersLongMenu_3 = { const TMenuLine line_CommonCountersLongMenu_3 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
(void*)&CounterLongCoinDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð (void*)&CounterLongCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
const TMenuLine line_CommonCountersLongMenu_4 = { const TMenuLine line_CommonCountersLongMenu_4 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè 0, // äîï. ôëàãè
(void*)&CounterLongCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð (void*)&CounterLongAllCashDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà NULL // ïàíåëü äëÿ ïåðåõîäà
}; };
@ -554,7 +553,7 @@ const TMenuLine line_SettingsMenu_9 = {
}; };
#endif #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}; const TMenuPanel SettingsMenuPanel[] = {arr_SettingsMenuArray, NULL, 7, MENU_PANEL_STANDARD};
@ -1015,26 +1014,19 @@ const TMenuLine line_FrMenu_9 = {
const TMenuLine line_FrMenu_10 = { const TMenuLine line_FrMenu_10 = {
MENU_LINE_SHOW_DESC, MENU_LINE_SHOW_DESC,
0, 0,
(void*)&PriceDesc, (void*)&ServiceNameDesc,
NULL NULL
}; };
const TMenuLine line_FrMenu_11 = { const TMenuLine line_FrMenu_11 = {
MENU_LINE_SHOW_DESC,
0,
(void*)&ServiceNameDesc,
NULL
};
const TMenuLine line_FrMenu_12 = {
MENU_LINE_SHOW_DESC, MENU_LINE_SHOW_DESC,
0, 0,
(void*)&DisableFiscalErrorsDesc, (void*)&DisableFiscalErrorsDesc,
NULL 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 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, 10, MENU_PANEL_STANDARD}; const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 9, MENU_PANEL_STANDARD};
/*********************************** /***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÍÅÒÎÏÐÈÅÌÍÈÊÀ ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÍÅÒÎÏÐÈÅÌÍÈÊÀ
@ -1866,10 +1858,14 @@ void PrintEventJournalRecord(TEventRecord *record)
if (record->event) if (record->event)
{ // åñòü ñîáûòèå { // åñòü ñîáûòèå
GetEventStr(str_EventNumber, 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); 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) else if (record->event == JOURNAL_EVENT_START_SESSION)
{ {
sprintf(&str_EventNumber[strlen(str_EventNumber)], ""); sprintf(&str_EventNumber[strlen(str_EventNumber)], "");

View File

@ -339,7 +339,7 @@ void CoinDisable(void)
void CoinEnable(void) void CoinEnable(void)
{ {
// äëÿ ðàçðåøåíèÿ ìîíåòíèêà âûñòàâèì íèçêèé óðîâåíü // äëÿ ðàçðåøåíèÿ ìîíåòíèêà âûñòàâèì íèçêèé óðîâåíü
FIO0CLR_bit.P0_25 = 1; FIO1CLR_bit.P1_31 = 1;
} }
void BankDisable(void) void BankDisable(void)
@ -496,20 +496,15 @@ CPU_INT32U input_register()
SETBIT(input, 2); SETBIT(input, 2);
} }
// 3 áèò // 3 áèò
if (FIO1PIN_bit.P1_24) if (FIO1PIN_bit.P1_23)
{ {
SETBIT(input, 3); SETBIT(input, 3);
} }
// 4 áèò // 4 áèò
if (FIO1PIN_bit.P1_23) if (FIO1PIN_bit.P1_24)
{ {
SETBIT(input, 4); SETBIT(input, 4);
} }
// 5 áèò
if (FIO1PIN_bit.P1_20)
{
SETBIT(input, 5);
}
return input; return input;
} }
@ -599,7 +594,7 @@ void InputCapture_ISR(void)
{ {
pend_signal_error_hopper_timestamp = OSTimeGet(); 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_upsignal_error_hopper_counter = 1;
pend_downsignal_error_hopper_counter = 0; pend_downsignal_error_hopper_counter = 0;
@ -616,7 +611,7 @@ void InputCapture_ISR(void)
{ {
pend_signal_nomoney_hopper_timestamp = OSTimeGet(); 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_upsignal_nomoney_hopper_counter = 1;
pend_downsignal_nomoney_hopper_counter = 0; 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 SetHopperPulseParam(CPU_INT32U pulse, CPU_INT32U pause);
extern void SetLevelParam(CPU_INT32U level1, CPU_INT32U level2, CPU_INT32U level3, CPU_INT32U level4); 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 BIT(bit) (1UL << (bit))
#define SETBIT(Val,bit) ((Val) |= BIT(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; price *= 100;
count = (cash / price) * 1000; count = (cash / price) * 1000;
if (ext) if (ext)

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0 LimitSize=0
ByteLimit=50 ByteLimit=50
[DebugChecksum] [DebugChecksum]
Checksum=-1470911039 Checksum=1862297616
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0
@ -40,6 +40,8 @@ ShowSource=1
WatchCond=_ 0 WatchCond=_ 0
Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0 Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
Watch1=_ 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] [Log file]
LoggingEnabled=_ 0 LoggingEnabled=_ 0
LogFile=_ "" 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> </Workspace>
<Build> <Build>
@ -30,7 +30,7 @@
<Windows> <Windows>
<Wnd0> <Wnd2>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-22094-17165</Identity> <Identity>TabID-22094-17165</Identity>
@ -42,7 +42,7 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1> <SelectedTab>0</SelectedTab></Wnd2><Wnd3>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-15821-17283</Identity> <Identity>TabID-15821-17283</Identity>
@ -58,20 +58,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd1></Windows> <SelectedTab>0</SelectedTab></Wnd3></Windows>
<Editor> <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> <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> </Desktop>
</Workspace> </Workspace>

File diff suppressed because it is too large Load Diff