логика работы с хоппером, счетчики и т.д.

2 часа
This commit is contained in:
Dmitriy 2021-02-16 21:57:44 +03:00
parent 2d515e9386
commit 8a31e64a99
13 changed files with 9913 additions and 9803 deletions

File diff suppressed because it is too large Load Diff

View File

@ -69,6 +69,10 @@ void SetAcceptedBankMoney(CPU_INT32U money);
void ClearAcceptedBankMoney(void);
CPU_INT32U GetAcceptedBankMoney(void);
void SetAcceptedRestMoney(CPU_INT32U money);
void ClearAcceptedRestMoney(void);
CPU_INT32U GetAcceptedRestMoney(void);
void InitPass(void);
int CheckChannelEnabled(CPU_INT08U channel);
int ChannelBusy(CPU_INT08U ch);
@ -123,13 +127,43 @@ CPU_INT32U FindBillIndex(CPU_INT32U nom)
return 0xFFFFFFFF;
}
/*
P0.24 MK_P8 óïðàâëåíèå õîïïåðîì
P0.25 MK_P7 çàïðåò áàíêîâñêîãî òåðìèíàëà
P1.31 MK_P20 èìïóëüñíûé âûõîä õîïïåðà
*/
// íàñòðîéêà âûõîäíûõ íîã óïðàâëåíèÿ
void initOutputPorts(void)
{
// óïðàâëåíèå õîïïåðîì: âûäà÷à èìïóëüñîâ íà õîïïåð èëè íåïðåðûâíûé ñèãíàë - LOW - óïðàâëåíèå è íîðìàëüíûé ñèãíàë èìïóëüñà
PINSEL1_bit.P0_24 = 0;
PINMODE1_bit.P0_24 = 0;
FIO0DIR_bit.P0_24 = 1;
FIO0MASK_bit.P0_24 = 0;
// çàïðåò áàíêîâñêîãî òåðìèíàëà - HIGH - çàïðåò
PINSEL1_bit.P0_25 = 0;
PINMODE1_bit.P0_25 = 0;
FIO0DIR_bit.P0_25 = 1;
FIO0MASK_bit.P0_25 = 0;
// çàïðåò ìîíåòíèêà - HIGH - çàïðåò
PINSEL3_bit.P1_31 = 0;
PINMODE3_bit.P1_31 = 0;
FIO1DIR_bit.P1_31 = 1;
FIO1MASK_bit.P1_31 = 0;
FIO0SET_bit.P0_24 = 1; // HIGH
FIO0CLR_bit.P0_25 = 1; // LOW
FIO1CLR_bit.P1_31 = 1; // LOW
}
/*!
Ñåðâåð îáðàáîòêè ñîáûòèé ïîëüçîâàòåëÿ
*/
void UserAppTask(void *p_arg)
{
CPU_INT32U print_timeout;
CPU_INT32U print_mode;
CPU_INT32U accmoney;
int event;
#ifdef BOARD_CENTRAL_CFG
@ -155,7 +189,8 @@ void UserAppTask(void *p_arg)
UserMenuState = USER_STATE_ACCEPT_MONEY;
}
}
int testMoney = 0;
incassation = 0;
was_critical_error = 0;
@ -228,65 +263,22 @@ void UserAppTask(void *p_arg)
accmoney = GetAcceptedMoney();
accmoney += GetAcceptedBankMoney();
accmoney += GetAcceptedRestMoney();
if (accmoney > 0)
{
LED_OK_ON();
CheckFiscalStatus();
GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX);
if (print_mode == 0)
// ñòîèìîñòü æåòîíà â õîïïåðå
CPU_INT32U HopperCost = 0;
GetData(&HopperCostDesc, &HopperCost, 0, DATA_FLAG_SYSTEM_INDEX);
if(accmoney >= HopperCost) // íàáðàëè äåíåã íà æåòîí - ìîæíî çàæå÷ü êíîïêó
{
// åñëè íàñòðîåíà ïå÷àòü ÏÎ ÒÀÉÌÀÓÒÓ
GetData(&PrintTimeoutDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX);
if (labs(OSTimeGet() - money_timestamp) > 1000UL * print_timeout)
{
UserPrintPrintBillMenu();
RefreshMenu();
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney, 0) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec());
}
}
IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedMoney(0);
OSTimeDly(1000);
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
if (IsFiscalConnected())
{
UserPrintThanksMenu();
RefreshMenu();
}
if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL);
OSTimeDly(1000);
LED_OK_OFF();
}
LED_OK_ON();
}
else if (print_mode == 1)
else
{
// åñëè íàñòðîåíà ïå÷àòü ÏÎ ÊÍÎÏÊÅ, æäåì òàéìàóò îòìåíû
GetData(&PrintTimeoutAfterDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX);
if (labs(OSTimeGet() - money_timestamp) > 1000UL * print_timeout)
{
SetAcceptedMoney(0);
UserPrintThanksMenu();
RefreshMenu();
if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL);
OSTimeDly(1000);
LED_OK_OFF();
}
LED_OK_OFF();
}
}
else
{
LED_OK_OFF();
}
// ïðèíèìàåì äåíüãè
UserPrintMoneyMenu();
@ -339,7 +331,9 @@ void UserAppTask(void *p_arg)
CPU_INT32U cpp = 1;
CPU_INT32U money, accmoney;
GetData(&CoinPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX);
money = cpp*GetResetCoinCount();
money = cpp * GetResetCoinCount() + testMoney;
accmoney = GetAcceptedMoney();
accmoney += money;
SetAcceptedMoney(accmoney);
@ -350,6 +344,16 @@ void UserAppTask(void *p_arg)
RefreshMenu();
}
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);
}
}
break;
case EVENT_CASH_INSERTED:
@ -370,6 +374,16 @@ void UserAppTask(void *p_arg)
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, money);
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);
}
}
break;
case EVENT_BANK_INSERTED:
@ -377,7 +391,9 @@ void UserAppTask(void *p_arg)
CPU_INT32U cpp = 1;
CPU_INT32U money, accmoney;
GetData(&BankPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX);
money = cpp * GetResetbankCount();
money = cpp * GetResetbankCount() + testMoney;
accmoney = GetAcceptedBankMoney();
accmoney += money;
SetAcceptedBankMoney(accmoney);
@ -389,6 +405,16 @@ void UserAppTask(void *p_arg)
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);
}
break;
@ -417,6 +443,16 @@ void UserAppTask(void *p_arg)
SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, note);
IncBillnomCounter(billnom_index);
}
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
if(!hopperStartButton)
{
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
PostUserEvent(EVENT_GIVE_COIN);
}
}
break;
@ -486,7 +522,7 @@ void UserAppTask(void *p_arg)
}
// â ðàáî÷åì ðåæèìå - ïå÷àòàåì ÷åêè
PostUserEvent(EVENT_PRINT_CHECK);
//PostUserEvent(EVENT_PRINT_CHECK);
break;
// íàæàëè âíåøíþþ êíîïêó
@ -517,51 +553,84 @@ void UserAppTask(void *p_arg)
CPU_INT32U hopper_mode = 0;
GetData(&RegimeHopperDesc, &hopper_mode, 0, DATA_FLAG_SYSTEM_INDEX);
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
// ñòîèìîñòü æåòîíà â õîïïåðå
CPU_INT32U HopperCost = 0;
GetData(&HopperCostDesc, &HopperCost, 0, DATA_FLAG_SYSTEM_INDEX);
CPU_INT32U accmoney = GetAcceptedMoney();
accmoney += GetAcceptedBankMoney();
accmoney += GetAcceptedRestMoney();
if(accmoney >= HopperCost)
{
CPU_INT32U CountCoin = 0;
CountCoin = accmoney / HopperCost;
// åñëè õâàòàåò íà æåòîí
if(hopperStartButton)
// åñëè õâàòàåò íà æåòîí - âíå çàâèñèìîñòè îò òèïà âûäà÷è æåòîíîâ
if(!hopper_mode)
{
// âûáðàíà âûäà÷à ìîíåò ïî êíîïêå
if(!hopper_mode)
// ðåæèì Elolution - óïðàâëÿåì âûäà÷åé æåòîíîâ èìïóëüñàìè
for(int j = 0; j < CountCoin; j++)
{
// ðåæèì Elolution
}
else
{
// ðåæèì Cube
FIO0SET_bit.P0_24 = 0;
OSTimeDly(50);
FIO0SET_bit.P0_24 = 1;
OSTimeDly(50);
}
}
else
{
// âûäàåì ïî äîñòèæåíèþ ñòîèìîñòè æåòîíà
// ðåæèì Cube
}
// ïîñëå ðàáîòû ñ õîïïåðîì - ïå÷àòàåì ÷åêè - òîëüêî åñëè âûäàëè æåòîí
PostUserEvent(EVENT_PRINT_CHECK);
// íàéäåì îñòàòîê îò âûäà÷è æåòîíà
CPU_INT32U restMoney = accmoney % HopperCost;
SetAcceptedRestMoney(restMoney);
SetAcceptedBankMoney(0);
SetAcceptedMoney(0);
}
}
// --------------------------
// ïîñëå ðàáîòû ñ õîïïåðîì - ïå÷àòàåì ÷åêè
PostUserEvent(EVENT_PRINT_CHECK);
break;
case EVENT_ERROR_HOPPER_ON:
{
if (GetMode() != MODE_WORK) break;
// ñèãíàë îøèáêè õîïïåðà
SetErrorFlag(ERROR_HOPPER);
SaveEventRecord(RecentChannel, ERROR_HOPPER, 0);
}
break;
case EVENT_ERROR_HOPPER_OFF:
{
if (GetMode() != MODE_WORK) break;
// ñèãíàë ÑÍßÒÈß îøèáêè õîïïåðà
ClrErrorFlag(ERROR_HOPPER);
}
break;
case EVENT_NOMONEY_HOPPER_ON:
{
if (GetMode() != MODE_WORK) break;
// ñèãíàë îòñóòñòâèÿ äåíåã â õîïïåðå
SetErrorFlag(ERROR_NO_MONEY_HOPPER);
SaveEventRecord(RecentChannel, ERROR_NO_MONEY_HOPPER, 0);
}
break;
case EVENT_NOMONEY_HOPPER_OFF:
{
if (GetMode() != MODE_WORK) break;
// ñèãíàë ÑÍßÒÈß îòñóòñòâèÿ äåíåã â õîïïåðå
ClrErrorFlag(ERROR_NO_MONEY_HOPPER);
}
break;
case EVENT_PRINT_CHECK:
if (GetMode() != MODE_WORK) break;
@ -576,82 +645,89 @@ void UserAppTask(void *p_arg)
// --------------------------
// íàõîäèìñÿ â ðàáî÷åì ðåæèìå
// --------------------------
// ïå÷àòàåì ÷åêè
GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX);
if (print_mode == 1)
{
// ïîëüçîâàòåëü âíåñ äåíüãè è íàæàë ÑÒÀÐÒ + ðåæèì ïå÷àòè ÏÎ ÊÍÎÏÊÅ
CPU_INT32U accmoney = GetAcceptedMoney();
if (accmoney > 0)
{
UserPrintPrintBillMenu();
RefreshMenu();
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney, 0) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec());
}
}
IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedMoney(0);
OSTimeDly(1000);
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
if (IsFiscalConnected())
{
UserPrintThanksMenu();
RefreshMenu();
}
if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL);
OSTimeDly(1000);
LED_OK_OFF();
}
accmoney = GetAcceptedBankMoney();
if (accmoney > 0)
{
UserPrintPrintBillMenu();
RefreshMenu();
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney, 1) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL_ONLINE, GetTimeSec());
}
}
IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedBankMoney(0);
OSTimeDly(1000);
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
if (IsFiscalConnected())
{
UserPrintThanksMenu();
RefreshMenu();
}
OSTimeDly(1000);
LED_OK_OFF();
}
}
// ïå÷àòàåì ÷åêè
// ïîëüçîâàòåëü âíåñ äåíüãè è íàæàë ÑÒÀÐÒ + ðåæèì ïå÷àòè ÏÎ ÊÍÎÏÊÅ
CPU_INT32U accmoney = GetAcceptedMoney();
if (accmoney > 0)
{
UserPrintPrintBillMenu();
RefreshMenu();
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney, 0) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec());
}
}
IncCounter(ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedMoney(0);
OSTimeDly(1000);
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
if (IsFiscalConnected())
{
UserPrintThanksMenu();
RefreshMenu();
}
if (IsValidatorConnected()) CC_CmdBillType(0xffffff, 0xffffff, ADDR_FL);
OSTimeDly(1000);
LED_OK_OFF();
}
accmoney = GetAcceptedBankMoney();
if (accmoney > 0)
{
UserPrintPrintBillMenu();
RefreshMenu();
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney, 1) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL_ONLINE, GetTimeSec());
}
}
IncCounter(ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedBankMoney(0);
OSTimeDly(1000);
// ïîâåñèì ìåíþ "ÑÏÀÑÈÁÎ"
if (IsFiscalConnected())
{
UserPrintThanksMenu();
RefreshMenu();
}
OSTimeDly(1000);
LED_OK_OFF();
}
}
break;
#else
#endif
case EVENT_KEY_F1:
testMoney = 10;
PostUserEvent(EVENT_COIN_INSERTED);
break;
case EVENT_KEY_F2:
testMoney = 50;
PostUserEvent(EVENT_BANK_INSERTED);
break;
case EVENT_KEY_F3:
//PostUserEvent(EVENT_BILL_STACKED);
break;
default:
break;
}
@ -671,7 +747,10 @@ void UserStartupFunc(void)
#ifdef BOARD_CENTRAL_CFG
// èíèöèàëèçàöèÿ ðåæèìà ðàáîòû
InitMode();
// èíèöèàëèçèðóåì âûõîäíûå ïîðòû
initOutputPorts();
// èíèöèàëèçàöèÿ äàííûõ
CheckAllData();
@ -792,7 +871,11 @@ void UserPrintMoneyMenu(void)
PrintUserMenuStr(buf, 0);
sprintf(buf, " Âíåñèòå äåíüãè");
PrintUserMenuStr(buf, 1);
accmoney = GetAcceptedMoney();
accmoney += GetAcceptedBankMoney();
accmoney += GetAcceptedRestMoney();
sprintf(buf, "Ïðèíÿòî %d ðóá.", accmoney);
PrintUserMenuStr(buf, 2);
sprintf(buf, " ");
@ -841,6 +924,19 @@ void UserPrintErrorMenu(void)
GetDataItem(&JournalErrorNumberDesc1, (CPU_INT08U*)buf, errcode);
PrintUserMenuStr(buf, 3);
}
else if(TstErrorFlag(ERROR_HOPPER) || TstErrorFlag(ERROR_NO_MONEY_HOPPER))
{
sprintf(buf, "ÎØÈÁÊÀ");
PrintUserMenuStr(buf, 0);
CPU_INT08U errcode = 0;
sprintf(buf, "ÎØÈÁÊÀ ÕÎÏÏÅÐÀ");
PrintUserMenuStr(buf, 1);
GetFirstCriticalFiscalError(&errcode);
GetDataItem(&JournalErrorNumberDesc0, (CPU_INT08U*)buf, errcode);
PrintUserMenuStr(buf, 2);
GetDataItem(&JournalErrorNumberDesc1, (CPU_INT08U*)buf, errcode);
PrintUserMenuStr(buf, 3);
}
/*
else if (!FReportTest())
{
@ -953,6 +1049,21 @@ void LoadAcceptedMoney(void)
SetData(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedBankMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
// ñ÷èòàåì cîõðàíåííûå äåíüãè èç FRAM
GetData(&AcceptedRestMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
// ñ÷èòàåì crc16 ýòèõ äåíåã èç FRAM
GetData(&AcceptedRestMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
crct = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
if (crct != crc)
{ // îáíóëÿåì, åñëè crc íå ñîøëàñü
m = 0;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedRestMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedRestMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
}
// äîáàâèòü äåíåã
@ -1014,6 +1125,37 @@ CPU_INT32U GetAcceptedBankMoney(void)
return m;
}
// äîáàâèòü äåíåã
void SetAcceptedRestMoney(CPU_INT32U money)
{
CPU_INT32U m,crc;
m=money;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedRestMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedRestMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
// î÷èñòèòü ñ÷åò÷èê äåíåã
void ClearAcceptedRestMoney(void)
{
CPU_INT32U m,crc;
m=0;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedRestMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedRestMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
// î÷èñòèòü ñ÷åò÷èê äåíåã
CPU_INT32U GetAcceptedRestMoney(void)
{
CPU_INT32U m;
GetData(&AcceptedRestMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
return m;
}
// èíèöèàëèçàöèÿ ïàðîëÿ
void InitPass(void)
{

View File

@ -1,7 +1,7 @@
#ifndef _CONTROL_H_
#define _CONTROL_H_
#define CHANNELS_NUM 6
#define CHANNELS_NUM 1
#define CHANNEL_1 0
#define CHANNEL_2 1

View File

@ -68,6 +68,7 @@ int TstCriticalErrors(void)
}
errors |= TstErrorFlag(ERROR_VALIDATOR_CONN);
errors |= TstErrorFlag(ERROR_HOPPER) || TstErrorFlag(ERROR_NO_MONEY_HOPPER);
OS_EXIT_CRITICAL();
if (errors) return 1;
@ -173,7 +174,13 @@ void GetEventStr(char* str, char event)
break;
case JOURNAL_EVENT_EMAIL_OK:
sprintf(str, "E-mail îòïð.óñïåøíî");
break;
break;
case JOURNAL_EVENT_MONEY_BANK:
sprintf(str, "Âí.áåçíàë ");
break;
case JOURNAL_EVENT_PRINT_BILL_ONLINE:
sprintf(str, "Ïå÷àòü ÷åêà áåçíàë");
break;
default:
sprintf(str, "íåò");
break;
@ -224,7 +231,13 @@ void GetEventStrEng(char* str, char event)
break;
case JOURNAL_EVENT_EMAIL_OK:
sprintf(str, " | E-mail otpravleno uspeshno ");
break;
break;
case JOURNAL_EVENT_MONEY_BANK:
sprintf(str, "Âí.áåçíàë ");
break;
case JOURNAL_EVENT_PRINT_BILL_ONLINE:
sprintf(str, "Ïå÷àòü ÷åêà áåçíàë");
break;
default:
sprintf(str, " | Net sobytiya ");
break;
@ -305,21 +318,10 @@ void PrintEventJournalRecordEng(char* str, TEventRecord *record)
}
}
void IncCounter(CPU_INT08U ch, CPU_INT32U time, CPU_INT32U money)
void IncCounter(CPU_INT32U time, CPU_INT32U money)
{
CPU_INT32U r, t, m;
TCountersLong long_ctrs;
// óâåëè÷èì êàíàëüíûå ñ÷åò÷èêè
ReadArrayFram(offsetof(TFramMap, Counters.CounterChannelRun)+sizeof(CPU_INT32U)*ch, sizeof(CPU_INT32U), (unsigned char*)&r);
ReadArrayFram(offsetof(TFramMap, Counters.CounterChannelTime)+sizeof(CPU_INT32U)*ch, sizeof(CPU_INT32U), (unsigned char*)&t);
ReadArrayFram(offsetof(TFramMap, Counters.CounterChannelMoney)+sizeof(CPU_INT32U)*ch, sizeof(CPU_INT32U), (unsigned char*)&m);
r++;
t+=time;
m+=money;
WriteArrayFram(offsetof(TFramMap, Counters.CounterChannelRun)+sizeof(CPU_INT32U)*ch, sizeof(CPU_INT32U), (unsigned char*)&r);
WriteArrayFram(offsetof(TFramMap, Counters.CounterChannelTime)+sizeof(CPU_INT32U)*ch, sizeof(CPU_INT32U), (unsigned char*)&t);
WriteArrayFram(offsetof(TFramMap, Counters.CounterChannelMoney)+sizeof(CPU_INT32U)*ch, sizeof(CPU_INT32U), (unsigned char*)&m);
// óâåëè÷èì îáùèå ñ÷åò÷èêè
ReadArrayFram(offsetof(TFramMap, Counters.CounterRun), sizeof(CPU_INT32U), (unsigned char*)&r);
@ -334,9 +336,6 @@ void IncCounter(CPU_INT08U ch, CPU_INT32U time, CPU_INT32U money)
// óâåëè÷èì äëèííûå ñ÷åò÷èêè
ReadArrayFram(offsetof(TFramMap, CountersLong), sizeof(TCountersLong), (unsigned char*)&long_ctrs);
long_ctrs.CounterChannelRunLong[ch]++;
long_ctrs.CounterChannelTimeLong[ch] += time;
long_ctrs.CounterChannelMoneyLong[ch] += money;
long_ctrs.CounterRunLong++;
long_ctrs.CounterTimeLong += time;
long_ctrs.CounterMoneyLong += money;

View File

@ -88,12 +88,15 @@ typedef struct{
#define ERROR_FR_CONN 41
// ÂÑÅ ÎØÈÁÊÈ ÔÐ ÔÀÒÀËÜÍÛÅ
#define ERROR_FR 42
#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 JOURNAL_EVENTS_COUNT JOURNAL_EVENT_PRINT_BILL_ONLINE // ÷èñëî ñîáûòèé
#define ERROR_HOPPER JOURNAL_EVENT_PRINT_BILL_ONLINE + 1 // îøèáêà õîïïåðà
#define ERROR_NO_MONEY_HOPPER ERROR_HOPPER + 1 // îøèáêà õîïïåðà - êîí÷èëèñü äåíüãè
#define JOURNAL_EVENTS_COUNT ERROR_NO_MONEY_HOPPER // ÷èñëî ñîáûòèé
// êàíàë
CPU_INT08U channel;
@ -106,12 +109,6 @@ typedef struct{
// ñòðóêòóðà äëÿ õðàíåíèÿ ñ÷åò÷èêîâ
typedef struct{
// ÷èñëî çàïóñêîâ ïîêàíàëüíî
CPU_INT32U CounterChannelRun[CHANNELS_NUM];
// Ñóììàðíîå âðåìÿ ðàáîòû ïîêàíàëüíî, ñåê.
CPU_INT32U CounterChannelTime[CHANNELS_NUM];
// Ñóììà äåíåã ïîêàíàëüíî
CPU_INT32U CounterChannelMoney[CHANNELS_NUM];
// îáùåå ÷èñëî çàïóñêîâ
CPU_INT32U CounterRun;
@ -124,25 +121,28 @@ typedef struct{
CPU_INT32U CounterBillNominals[24];
// îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå)
CPU_INT32U BillsCount;
CPU_INT32U CounterCoin; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCash; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBank; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
}TCounters;
// ñòðóêòóðà äëÿ õðàíåíèÿ äëèííûõ ñ÷åò÷èêîâ
// âåäåì ïîêà òîëüêî ýòè òðè äëèííûõ
typedef struct{
// ÷èñëî çàïóñêîâ ïîêàíàëüíî
CPU_INT32U CounterChannelRunLong[CHANNELS_NUM];
// Ñóììàðíîå âðåìÿ ðàáîòû ïîêàíàëüíî, ñåê.
CPU_INT32U CounterChannelTimeLong[CHANNELS_NUM];
// Ñóììà äåíåã ïîêàíàëüíî
CPU_INT32U CounterChannelMoneyLong[CHANNELS_NUM];
CPU_INT32U CounterRunLong;
CPU_INT32U CounterTimeLong;
CPU_INT32U CounterMoneyLong;
CPU_INT32U CounterCoinLong; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCashLong; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBankLong; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
CPU_INT16U crc;
}TCountersLong;
extern CPU_INT32U GetShortMoney();
extern void IncBillnomCounter(CPU_INT32U index);
extern void CheckLongCounters(void);
@ -154,7 +154,7 @@ extern int TstCriticalErrors(void);
extern void ClearEventJournal(void);
extern void GetEventStr(char* str, char event);
extern int GetEventRecord(TEventRecord* record, CPU_INT32U index);
extern void IncCounter(CPU_INT08U ch, CPU_INT32U time, CPU_INT32U money);
extern void IncCounter(CPU_INT32U time, CPU_INT32U money);
extern void ClearCounters(void);
extern void ErrorServer(void);
extern int TstCriticalValidatorErrors(void);

View File

@ -1878,7 +1878,9 @@ CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"
"ÔÐ:C7h-Ïîëå íå",
"ÔÐ:Ñ8h-Îòñóòñòâóþò",
"",
""
"",
"ОШИБКА ХОППЕРА",
"ХОППЕР: Нет жетонов"
};
@ -2041,7 +2043,9 @@ CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] = {"", "", "", "",
"ðåäàêòèðóåòñÿ",
"èìïóëüñû òàõî.",
"",
""
"",
"",
"",
};
TDataDescStruct const JournalErrorNumberDesc1 = {
@ -2509,133 +2513,6 @@ TDataDescStruct const CounterLongTimeDesc = {
0
};
/*************************************
Канальный счетчик числа запусков
*************************************/
TDataDescStruct const CounterChannelRunDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_IS_ARRAY, // признак массива
CHANNELS_NUM, // размер массива
&ChannelStIndexDesc, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, Counters.CounterChannelRun[0]), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CounterRunName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Канальный счетчик денег
*************************************/
TDataDescStruct const CounterChannelMoneyDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_IS_ARRAY, // признак массива
CHANNELS_NUM, // размер массива
&ChannelStIndexDesc, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, Counters.CounterChannelMoney[0]), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CounterMoneyName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Канальный счетчик времени работы
*************************************/
TDataDescStruct const CounterChannelTimeDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_TIME_COUNT, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_IS_ARRAY, // признак массива
CHANNELS_NUM, // размер массива
&ChannelStIndexDesc, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, Counters.CounterChannelTime), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CounterTimeName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Канальный счетчик числа запусков
*************************************/
TDataDescStruct const CounterChannelRunLongDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_IS_ARRAY, // признак массива
CHANNELS_NUM, // размер массива
&ChannelStIndexDesc, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, CountersLong.CounterChannelRunLong[0]), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CounterRunName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Канальный счетчик денег
*************************************/
TDataDescStruct const CounterChannelMoneyLongDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_IS_ARRAY, // признак массива
CHANNELS_NUM, // размер массива
&ChannelStIndexDesc, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, CountersLong.CounterChannelMoneyLong[0]), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CounterMoneyName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Канальный счетчик времени работы
*************************************/
TDataDescStruct const CounterChannelTimeLongDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_TIME_COUNT, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_IS_ARRAY, // признак массива
CHANNELS_NUM, // размер массива
&ChannelStIndexDesc, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, CountersLong.CounterChannelTimeLong), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
CounterTimeName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Êîìàíäà íà î÷èñòêó ñòàòèñòèêè
*************************************/
@ -2938,7 +2815,7 @@ TDataDescStruct const AcceptedBankMoneyDesc = {
};
/*************************************
Дескриптор Crc16 энергонезависимого сохранения текущих денег
Дескриптор Crc16 энергонезависимого сохранения
*************************************/
TDataDescStruct const AcceptedBankMoneyCRC16Desc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
@ -2958,6 +2835,45 @@ TDataDescStruct const AcceptedBankMoneyCRC16Desc = {
0
};
TDataDescStruct const AcceptedRestMoneyDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, FRAM_AcceptedRestMoney), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
NULL, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Дескриптор Crc16 энергонезависимого сохранения
*************************************/
TDataDescStruct const AcceptedRestMoneyCRC16Desc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, crc_AcceptedRestMoney), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
NULL, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð ïàðîëÿ
*************************************/
@ -3742,6 +3658,7 @@ const TDataDescArrayStruct AllDataArray[] =
{&RegimeHopperDesc, "RegimeHopperDesc"},
{&PrintModeDesc, "PrintModeDesc"},
{&PrintTimeoutAfterDesc, "PrintTimeoutAfterDesc"},
{NULL, ""}
};

View File

@ -274,4 +274,7 @@ extern TDataDescStruct const RegimeHopperDesc;
extern TDataDescStruct const AcceptedBankMoneyDesc;
extern TDataDescStruct const AcceptedBankMoneyCRC16Desc;
extern TDataDescStruct const AcceptedRestMoneyDesc;
extern TDataDescStruct const AcceptedRestMoneyCRC16Desc;
#endif //#ifndef _DATADESC_H_

View File

@ -20,12 +20,18 @@ typedef struct
// äëèííûå ñ÷åò÷èêè ñ CRC16
TCountersLong CountersLong;
// линия наличных денег
CPU_INT32U FRAM_AcceptedMoney;
CPU_INT32U crc_AcceptedMoney;
// линия безналичных денег
CPU_INT32U FRAM_AcceptedBankMoney;
CPU_INT32U crc_AcceptedBankMoney;
// линия остатка от продажи жетонов
CPU_INT32U FRAM_AcceptedRestMoney;
CPU_INT32U crc_AcceptedRestMoney;
// æóðíàë ñîáûòèé+îøèáîê
TEventRecord EventRecords[EVENT_RECORDS_COUNT];

View File

@ -992,8 +992,8 @@ const TMenuLine 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, &line_FrMenu_12, NULL};
const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 11, 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, &line_FrMenu_12, NULL};
const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 10, MENU_PANEL_STANDARD};
/***********************************
МЕНЮ НАСТРОЙКА МОНЕТОПРИЕМНИКА

View File

@ -34,12 +34,12 @@
<ShowCodeCoverage>0</ShowCodeCoverage><ShowInstrProfiling>0</ShowInstrProfiling></Disassembly>
</Static>
<Find-in-Files><ColumnWidth0>470</ColumnWidth0><ColumnWidth1>67</ColumnWidth1><ColumnWidth2>806</ColumnWidth2></Find-in-Files></Static>
<Windows>
<Wnd0>
<Wnd3>
<Tabs>
<Tab>
<Identity>TabID-4454-14979</Identity>
@ -53,9 +53,9 @@
<Factory>Build</Factory>
<Session/>
</Tab>
</Tabs>
<Tab><Identity>TabID-8358-20066</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<SelectedTab>0</SelectedTab></Wnd3><Wnd4>
<Tabs>
<Tab>
<Identity>TabID-15203-14983</Identity>
@ -67,7 +67,7 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd1><Wnd2>
<SelectedTab>0</SelectedTab></Wnd4><Wnd5>
<Tabs>
<Tab>
<Identity>TabID-25951-14986</Identity>
@ -77,20 +77,20 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd2></Windows>
<SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\validator.c</Filename><XPos>0</XPos><YPos>345</YPos><SelStart>11245</SelStart><SelEnd>11245</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>327</YPos><SelStart>8896</SelStart><SelEnd>8896</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>9</YPos><SelStart>753</SelStart><SelEnd>753</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>58</YPos><SelStart>1532</SelStart><SelEnd>1532</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>434</SelStart><SelEnd>434</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>37</YPos><SelStart>1378</SelStart><SelEnd>1398</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>254</YPos><SelStart>9260</SelStart><SelEnd>9260</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>2335</YPos><SelStart>103237</SelStart><SelEnd>103237</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>797</YPos><SelStart>17962</SelStart><SelEnd>17962</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>22</YPos><SelStart>437</SelStart><SelEnd>437</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>977</YPos><SelStart>47738</SelStart><SelEnd>47738</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>255</SelStart><SelEnd>255</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>420</SelStart><SelEnd>429</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>79</YPos><SelStart>3925</SelStart><SelEnd>3925</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>361</YPos><SelStart>11565</SelStart><SelEnd>11565</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>617</YPos><SelStart>16296</SelStart><SelEnd>16311</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c</Filename><XPos>0</XPos><YPos>882</YPos><SelStart>22988</SelStart><SelEnd>23009</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>161</YPos><SelStart>3900</SelStart><SelEnd>3900</SelEnd></Tab><ActiveTab>18</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\mode.c</Filename><XPos>0</XPos><YPos>19</YPos><SelStart>517</SelStart><SelEnd>517</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\services\time.c</Filename><XPos>0</XPos><YPos>58</YPos><SelStart>1532</SelStart><SelEnd>1532</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>434</SelStart><SelEnd>434</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>1223</SelStart><SelEnd>1241</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>255</YPos><SelStart>9412</SelStart><SelEnd>9412</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>905</YPos><SelStart>41490</SelStart><SelEnd>41502</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>797</YPos><SelStart>17962</SelStart><SelEnd>17962</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>10</YPos><SelStart>220</SelStart><SelEnd>220</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>1075</YPos><SelStart>42732</SelStart><SelEnd>42732</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>255</SelStart><SelEnd>255</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>466</SelStart><SelEnd>466</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>107</YPos><SelStart>4640</SelStart><SelEnd>4659</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>391</YPos><SelStart>11010</SelStart><SelEnd>11027</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>617</YPos><SelStart>16296</SelStart><SelEnd>16311</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c</Filename><XPos>0</XPos><YPos>882</YPos><SelStart>22988</SelStart><SelEnd>23009</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h</Filename><XPos>0</XPos><YPos>186</YPos><SelStart>10097</SelStart><SelEnd>10097</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.c</Filename><XPos>0</XPos><YPos>18</YPos><SelStart>455</SelStart><SelEnd>583</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.c</Filename><XPos>0</XPos><YPos>13</YPos><SelStart>409</SelStart><SelEnd>409</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>517</YPos><SelStart>20388</SelStart><SelEnd>20388</SelEnd></Tab><ActiveTab>18</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\validator.c</Filename><XPos>0</XPos><YPos>348</YPos><SelStart>11492</SelStart><SelEnd>11497</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>703</YPos><SelStart>11870</SelStart><SelEnd>11870</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-04da29c8><key>iaridepm.enu1</key></Toolbar-04da29c8></Sizes></Row0><Row1><Sizes><Toolbar-1743da60><key>debuggergui.enu1</key></Toolbar-1743da60></Sizes></Row1></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>458</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>634483</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>458</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>634483</sizeVertCY></Rect></Wnd2></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>200</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>275862</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
<Top><Row0><Sizes><Toolbar-047729c8><key>iaridepm.enu1</key></Toolbar-047729c8></Sizes></Row0><Row1><Sizes><Toolbar-1741f700><key>debuggergui.enu1</key></Toolbar-1741f700></Sizes></Row1></Top><Left><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>458</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>634483</sizeVertCY></Rect></Wnd4></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>458</Bottom><Right>198</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>634483</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>200</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>275862</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Project>

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
Checksum=-770169122
Checksum=-949798228
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
@ -57,7 +57,9 @@ Symbiont=0
[Disassemble mode]
mode=0
[Breakpoints2]
Count=0
Bp0=_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_serv.c}.540.19" 0 0 1 "" 0 "" 0
Bp1=_ 1 "EMUL_CODE" "{$PROJ_DIR$\PROJECT\app\app_serv.c}.530.19" 0 0 1 "" 0 "" 0
Count=2
[Aliases]
Count=0
SuppressDialog=0

View File

@ -12,7 +12,7 @@
<Column0>177</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
<Column0>129</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\services\validator.c</Filename><XPos>0</XPos><YPos>345</YPos><SelStart>11245</SelStart><SelEnd>11245</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>531</YPos><SelStart>19129</SelStart><SelEnd>19129</SelEnd></Tab><ActiveTab>1</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>325</YPos><SelStart>8531</SelStart><SelEnd>8565</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>58</YPos><SelStart>1532</SelStart><SelEnd>1532</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>434</SelStart><SelEnd>434</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>41</YPos><SelStart>1402</SelStart><SelEnd>1417</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>254</YPos><SelStart>9260</SelStart><SelEnd>9260</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>3461</YPos><SelStart>159921</SelStart><SelEnd>159935</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>797</YPos><SelStart>17962</SelStart><SelEnd>17962</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>22</YPos><SelStart>437</SelStart><SelEnd>437</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>977</YPos><SelStart>47738</SelStart><SelEnd>47738</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>255</SelStart><SelEnd>255</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>420</SelStart><SelEnd>429</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>79</YPos><SelStart>3925</SelStart><SelEnd>3925</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>361</YPos><SelStart>11565</SelStart><SelEnd>11565</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>617</YPos><SelStart>16296</SelStart><SelEnd>16311</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c</Filename><XPos>0</XPos><YPos>882</YPos><SelStart>22988</SelStart><SelEnd>23009</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\services\time.c</Filename><XPos>0</XPos><YPos>58</YPos><SelStart>1532</SelStart><SelEnd>1532</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\ccnet\CCRSProtocol.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>434</SelStart><SelEnd>434</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>1223</SelStart><SelEnd>1241</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>255</YPos><SelStart>9412</SelStart><SelEnd>9412</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>905</YPos><SelStart>41490</SelStart><SelEnd>41502</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>797</YPos><SelStart>17962</SelStart><SelEnd>17962</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>10</YPos><SelStart>220</SelStart><SelEnd>220</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>1075</YPos><SelStart>42732</SelStart><SelEnd>42732</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>255</SelStart><SelEnd>255</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>33</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>466</SelStart><SelEnd>466</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>107</YPos><SelStart>4640</SelStart><SelEnd>4659</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>391</YPos><SelStart>11010</SelStart><SelEnd>11027</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>617</YPos><SelStart>16296</SelStart><SelEnd>16311</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.c</Filename><XPos>0</XPos><YPos>882</YPos><SelStart>22988</SelStart><SelEnd>23009</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\fiscal\fiscal.h</Filename><XPos>0</XPos><YPos>186</YPos><SelStart>10097</SelStart><SelEnd>10097</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.c</Filename><XPos>0</XPos><YPos>18</YPos><SelStart>455</SelStart><SelEnd>583</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.c</Filename><XPos>0</XPos><YPos>13</YPos><SelStart>409</SelStart><SelEnd>409</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>535</YPos><SelStart>17918</SelStart><SelEnd>17918</SelEnd></Tab><ActiveTab>18</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\validator.c</Filename><XPos>0</XPos><YPos>348</YPos><SelStart>11492</SelStart><SelEnd>11497</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>703</YPos><SelStart>11870</SelStart><SelEnd>11870</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-04da29c8><key>iaridepm.enu1</key></Toolbar-04da29c8></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>500</Bottom><Right>268</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>197657</sizeVertCX><sizeVertCY>692414</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>180</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>182</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>251034</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>275862</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
<Top><Row0><Sizes><Toolbar-047729c8><key>iaridepm.enu1</key></Toolbar-047729c8></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>493</Bottom><Right>220</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>146413</sizeHorzCX><sizeHorzCY>275862</sizeHorzCY><sizeVertCX>162518</sizeVertCX><sizeVertCY>682759</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>187</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>189</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>260690</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