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

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); void ClearAcceptedBankMoney(void);
CPU_INT32U GetAcceptedBankMoney(void); CPU_INT32U GetAcceptedBankMoney(void);
void SetAcceptedRestMoney(CPU_INT32U money);
void ClearAcceptedRestMoney(void);
CPU_INT32U GetAcceptedRestMoney(void);
void InitPass(void); void InitPass(void);
int CheckChannelEnabled(CPU_INT08U channel); int CheckChannelEnabled(CPU_INT08U channel);
int ChannelBusy(CPU_INT08U ch); int ChannelBusy(CPU_INT08U ch);
@ -123,13 +127,43 @@ CPU_INT32U FindBillIndex(CPU_INT32U nom)
return 0xFFFFFFFF; 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) void UserAppTask(void *p_arg)
{ {
CPU_INT32U print_timeout;
CPU_INT32U print_mode;
CPU_INT32U accmoney; CPU_INT32U accmoney;
int event; int event;
#ifdef BOARD_CENTRAL_CFG #ifdef BOARD_CENTRAL_CFG
@ -156,6 +190,7 @@ void UserAppTask(void *p_arg)
} }
} }
int testMoney = 0;
incassation = 0; incassation = 0;
was_critical_error = 0; was_critical_error = 0;
@ -228,65 +263,22 @@ void UserAppTask(void *p_arg)
accmoney = GetAcceptedMoney(); accmoney = GetAcceptedMoney();
accmoney += GetAcceptedBankMoney(); accmoney += GetAcceptedBankMoney();
accmoney += GetAcceptedRestMoney();
if (accmoney > 0) {
// ñòîèìîñòü æåòîíà â õîïïåðå
CPU_INT32U HopperCost = 0;
GetData(&HopperCostDesc, &HopperCost, 0, DATA_FLAG_SYSTEM_INDEX);
if(accmoney >= HopperCost) // íàáðàëè äåíåã íà æåòîí - ìîæíî çàæå÷ü êíîïêó
{ {
LED_OK_ON(); LED_OK_ON();
CheckFiscalStatus();
GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX);
if (print_mode == 0)
{
// åñëè íàñòðîåíà ïå÷àòü ÏÎ ÒÀÉÌÀÓÒÓ
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();
}
}
else if (print_mode == 1)
{
// åñëè íàñòðîåíà ïå÷àòü ÏÎ ÊÍÎÏÊÅ, æäåì òàéìàóò îòìåíû
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();
}
}
} }
else else
{ {
LED_OK_OFF(); LED_OK_OFF();
} }
}
// ïðèíèìàåì äåíüãè // ïðèíèìàåì äåíüãè
UserPrintMoneyMenu(); UserPrintMoneyMenu();
@ -339,7 +331,9 @@ void UserAppTask(void *p_arg)
CPU_INT32U cpp = 1; CPU_INT32U cpp = 1;
CPU_INT32U money, accmoney; CPU_INT32U money, accmoney;
GetData(&CoinPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX); GetData(&CoinPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX);
money = cpp*GetResetCoinCount();
money = cpp * GetResetCoinCount() + testMoney;
accmoney = GetAcceptedMoney(); accmoney = GetAcceptedMoney();
accmoney += money; accmoney += money;
SetAcceptedMoney(accmoney); SetAcceptedMoney(accmoney);
@ -350,6 +344,16 @@ void UserAppTask(void *p_arg)
RefreshMenu(); RefreshMenu();
} }
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_COIN, money); 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; break;
case EVENT_CASH_INSERTED: case EVENT_CASH_INSERTED:
@ -370,6 +374,16 @@ void UserAppTask(void *p_arg)
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, money); if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, money);
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);
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
if(!hopperStartButton)
{
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
PostUserEvent(EVENT_GIVE_COIN);
}
} }
break; break;
case EVENT_BANK_INSERTED: case EVENT_BANK_INSERTED:
@ -377,7 +391,9 @@ void UserAppTask(void *p_arg)
CPU_INT32U cpp = 1; CPU_INT32U cpp = 1;
CPU_INT32U money, accmoney; CPU_INT32U money, accmoney;
GetData(&BankPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX); GetData(&BankPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX);
money = cpp * GetResetbankCount();
money = cpp * GetResetbankCount() + testMoney;
accmoney = GetAcceptedBankMoney(); accmoney = GetAcceptedBankMoney();
accmoney += money; accmoney += money;
SetAcceptedBankMoney(accmoney); SetAcceptedBankMoney(accmoney);
@ -389,6 +405,16 @@ void UserAppTask(void *p_arg)
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);
} }
break; break;
@ -417,6 +443,16 @@ void UserAppTask(void *p_arg)
SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, note); SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE, note);
IncBillnomCounter(billnom_index); IncBillnomCounter(billnom_index);
} }
// âûäàåì ìîíåòû ïî êíîïêå?
CPU_INT32U hopperStartButton = 0;
GetData(&HopperButtonStartDesc, &hopperStartButton, 0, DATA_FLAG_SYSTEM_INDEX);
if(!hopperStartButton)
{
// åñëè íå ïî êíîïêå - íà êàæäîì âíåñåíèè ïðîâåðÿåì íåîáõîäèìîñòü âûäà÷è æåòîíîâ
PostUserEvent(EVENT_GIVE_COIN);
}
} }
break; break;
@ -486,7 +522,7 @@ void UserAppTask(void *p_arg)
} }
// â ðàáî÷åì ðåæèìå - ïå÷àòàåì ÷åêè // â ðàáî÷åì ðåæèìå - ïå÷àòàåì ÷åêè
PostUserEvent(EVENT_PRINT_CHECK); //PostUserEvent(EVENT_PRINT_CHECK);
break; break;
// íàæàëè âíåøíþþ êíîïêó // íàæàëè âíåøíþþ êíîïêó
@ -517,51 +553,84 @@ void UserAppTask(void *p_arg)
CPU_INT32U hopper_mode = 0; CPU_INT32U hopper_mode = 0;
GetData(&RegimeHopperDesc, &hopper_mode, 0, DATA_FLAG_SYSTEM_INDEX); 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; CPU_INT32U HopperCost = 0;
GetData(&HopperCostDesc, &HopperCost, 0, DATA_FLAG_SYSTEM_INDEX); GetData(&HopperCostDesc, &HopperCost, 0, DATA_FLAG_SYSTEM_INDEX);
CPU_INT32U accmoney = GetAcceptedMoney(); CPU_INT32U accmoney = GetAcceptedMoney();
accmoney += GetAcceptedBankMoney(); accmoney += GetAcceptedBankMoney();
accmoney += GetAcceptedRestMoney();
if(accmoney >= HopperCost) if(accmoney >= HopperCost)
{ {
CPU_INT32U CountCoin = 0; CPU_INT32U CountCoin = 0;
CountCoin = accmoney / HopperCost; CountCoin = accmoney / HopperCost;
// åñëè õâàòàåò íà æåòîí // åñëè õâàòàåò íà æåòîí - âíå çàâèñèìîñòè îò òèïà âûäà÷è æåòîíîâ
if(hopperStartButton)
{
// âûáðàíà âûäà÷à ìîíåò ïî êíîïêå
if(!hopper_mode) if(!hopper_mode)
{ {
// ðåæèì Elolution // ðåæèì Elolution - óïðàâëÿåì âûäà÷åé æåòîíîâ èìïóëüñàìè
for(int j = 0; j < CountCoin; j++)
{
FIO0SET_bit.P0_24 = 0;
OSTimeDly(50);
FIO0SET_bit.P0_24 = 1;
OSTimeDly(50);
}
} }
else else
{ {
// ðåæèì Cube // ðåæèì Cube
} }
}
else
{
// âûäàåì ïî äîñòèæåíèþ ñòîèìîñòè æåòîíà
} // ïîñëå ðàáîòû ñ õîïïåðîì - ïå÷àòàåì ÷åêè - òîëüêî åñëè âûäàëè æåòîí
}
}
// --------------------------
// ïîñëå ðàáîòû ñ õîïïåðîì - ïå÷àòàåì ÷åêè
PostUserEvent(EVENT_PRINT_CHECK); PostUserEvent(EVENT_PRINT_CHECK);
break; // íàéäåì îñòàòîê îò âûäà÷è æåòîíà
CPU_INT32U restMoney = accmoney % HopperCost;
SetAcceptedRestMoney(restMoney);
SetAcceptedBankMoney(0);
SetAcceptedMoney(0);
}
}
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: case EVENT_PRINT_CHECK:
if (GetMode() != MODE_WORK) break; if (GetMode() != MODE_WORK) break;
@ -576,11 +645,8 @@ void UserAppTask(void *p_arg)
// -------------------------- // --------------------------
// íàõîäèìñÿ â ðàáî÷åì ðåæèìå // íàõîäèìñÿ â ðàáî÷åì ðåæèìå
// -------------------------- // --------------------------
// ïå÷àòàåì ÷åêè
GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX);
if (print_mode == 1)
{ {
// ïå÷àòàåì ÷åêè
// ïîëüçîâàòåëü âíåñ äåíüãè è íàæàë ÑÒÀÐÒ + ðåæèì ïå÷àòè ÏÎ ÊÍÎÏÊÅ // ïîëüçîâàòåëü âíåñ äåíüãè è íàæàë ÑÒÀÐÒ + ðåæèì ïå÷àòè ÏÎ ÊÍÎÏÊÅ
CPU_INT32U accmoney = GetAcceptedMoney(); CPU_INT32U accmoney = GetAcceptedMoney();
@ -598,7 +664,7 @@ void UserAppTask(void *p_arg)
} }
} }
IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney); IncCounter(ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedMoney(0); SetAcceptedMoney(0);
OSTimeDly(1000); OSTimeDly(1000);
@ -631,7 +697,7 @@ void UserAppTask(void *p_arg)
} }
} }
IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney); IncCounter(ChannelsPayedTime[RecentChannel], accmoney);
SetAcceptedBankMoney(0); SetAcceptedBankMoney(0);
OSTimeDly(1000); OSTimeDly(1000);
@ -646,12 +712,22 @@ void UserAppTask(void *p_arg)
LED_OK_OFF(); LED_OK_OFF();
} }
} }
break; break;
#else #else
#endif #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: default:
break; break;
} }
@ -672,6 +748,9 @@ void UserStartupFunc(void)
// èíèöèàëèçàöèÿ ðåæèìà ðàáîòû // èíèöèàëèçàöèÿ ðåæèìà ðàáîòû
InitMode(); InitMode();
// èíèöèàëèçèðóåì âûõîäíûå ïîðòû
initOutputPorts();
// èíèöèàëèçàöèÿ äàííûõ // èíèöèàëèçàöèÿ äàííûõ
CheckAllData(); CheckAllData();
@ -792,7 +871,11 @@ void UserPrintMoneyMenu(void)
PrintUserMenuStr(buf, 0); PrintUserMenuStr(buf, 0);
sprintf(buf, " Âíåñèòå äåíüãè"); sprintf(buf, " Âíåñèòå äåíüãè");
PrintUserMenuStr(buf, 1); PrintUserMenuStr(buf, 1);
accmoney = GetAcceptedMoney(); accmoney = GetAcceptedMoney();
accmoney += GetAcceptedBankMoney();
accmoney += GetAcceptedRestMoney();
sprintf(buf, "Ïðèíÿòî %d ðóá.", accmoney); sprintf(buf, "Ïðèíÿòî %d ðóá.", accmoney);
PrintUserMenuStr(buf, 2); PrintUserMenuStr(buf, 2);
sprintf(buf, " "); sprintf(buf, " ");
@ -841,6 +924,19 @@ void UserPrintErrorMenu(void)
GetDataItem(&JournalErrorNumberDesc1, (CPU_INT08U*)buf, errcode); GetDataItem(&JournalErrorNumberDesc1, (CPU_INT08U*)buf, errcode);
PrintUserMenuStr(buf, 3); 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()) else if (!FReportTest())
{ {
@ -953,6 +1049,21 @@ void LoadAcceptedMoney(void)
SetData(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX); SetData(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedBankMoneyCRC16Desc, &crc, 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; 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) void InitPass(void)
{ {

View File

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

View File

@ -68,6 +68,7 @@ int TstCriticalErrors(void)
} }
errors |= TstErrorFlag(ERROR_VALIDATOR_CONN); errors |= TstErrorFlag(ERROR_VALIDATOR_CONN);
errors |= TstErrorFlag(ERROR_HOPPER) || TstErrorFlag(ERROR_NO_MONEY_HOPPER);
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
if (errors) return 1; if (errors) return 1;
@ -174,6 +175,12 @@ void GetEventStr(char* str, char event)
case JOURNAL_EVENT_EMAIL_OK: case JOURNAL_EVENT_EMAIL_OK:
sprintf(str, "E-mail îòïð.óñïåøíî"); sprintf(str, "E-mail îòïð.óñïåøíî");
break; break;
case JOURNAL_EVENT_MONEY_BANK:
sprintf(str, "Âí.áåçíàë ");
break;
case JOURNAL_EVENT_PRINT_BILL_ONLINE:
sprintf(str, "Ïå÷àòü ÷åêà áåçíàë");
break;
default: default:
sprintf(str, "íåò"); sprintf(str, "íåò");
break; break;
@ -225,6 +232,12 @@ void GetEventStrEng(char* str, char event)
case JOURNAL_EVENT_EMAIL_OK: case JOURNAL_EVENT_EMAIL_OK:
sprintf(str, " | E-mail otpravleno uspeshno "); 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: default:
sprintf(str, " | Net sobytiya "); sprintf(str, " | Net sobytiya ");
break; break;
@ -305,22 +318,11 @@ 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; CPU_INT32U r, t, m;
TCountersLong long_ctrs; 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); ReadArrayFram(offsetof(TFramMap, Counters.CounterRun), sizeof(CPU_INT32U), (unsigned char*)&r);
ReadArrayFram(offsetof(TFramMap, Counters.CounterTime), sizeof(CPU_INT32U), (unsigned char*)&t); ReadArrayFram(offsetof(TFramMap, Counters.CounterTime), sizeof(CPU_INT32U), (unsigned char*)&t);
@ -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); 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.CounterRunLong++;
long_ctrs.CounterTimeLong += time; long_ctrs.CounterTimeLong += time;
long_ctrs.CounterMoneyLong += money; long_ctrs.CounterMoneyLong += money;

View File

@ -93,7 +93,10 @@ typedef struct{
#define JOURNAL_EVENT_MONEY_BANK (ERROR_FR+FR_ERROR_NUMBER) + 1 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ áàíêîâñêîãî òåðìèíàëà (êîë-âî ðóáëåé) #define JOURNAL_EVENT_MONEY_BANK (ERROR_FR+FR_ERROR_NUMBER) + 1 // ñîáûòèå ïîëó÷åíèÿ äåíåã ñ áàíêîâñêîãî òåðìèíàëà (êîë-âî ðóáëåé)
#define JOURNAL_EVENT_PRINT_BILL_ONLINE JOURNAL_EVENT_MONEY_BANK + 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; CPU_INT08U channel;
@ -106,12 +109,6 @@ typedef struct{
// ñòðóêòóðà äëÿ õðàíåíèÿ ñ÷åò÷èêîâ // ñòðóêòóðà äëÿ õðàíåíèÿ ñ÷åò÷èêîâ
typedef struct{ typedef struct{
// ÷èñëî çàïóñêîâ ïîêàíàëüíî
CPU_INT32U CounterChannelRun[CHANNELS_NUM];
// Ñóììàðíîå âðåìÿ ðàáîòû ïîêàíàëüíî, ñåê.
CPU_INT32U CounterChannelTime[CHANNELS_NUM];
// Ñóììà äåíåã ïîêàíàëüíî
CPU_INT32U CounterChannelMoney[CHANNELS_NUM];
// îáùåå ÷èñëî çàïóñêîâ // îáùåå ÷èñëî çàïóñêîâ
CPU_INT32U CounterRun; CPU_INT32U CounterRun;
@ -124,24 +121,27 @@ typedef struct{
CPU_INT32U CounterBillNominals[24]; CPU_INT32U CounterBillNominals[24];
// îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå) // îáùèé ñ÷åò÷èê êóïþð (âñåãî â êàññåòå)
CPU_INT32U BillsCount; CPU_INT32U BillsCount;
CPU_INT32U CounterCoin; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCash; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBank; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
}TCounters; }TCounters;
// ñòðóêòóðà äëÿ õðàíåíèÿ äëèííûõ ñ÷åò÷èêîâ // ñòðóêòóðà äëÿ õðàíåíèÿ äëèííûõ ñ÷åò÷èêîâ
// âåäåì ïîêà òîëüêî ýòè òðè äëèííûõ
typedef struct{ typedef struct{
// ÷èñëî çàïóñêîâ ïîêàíàëüíî
CPU_INT32U CounterChannelRunLong[CHANNELS_NUM];
// Ñóììàðíîå âðåìÿ ðàáîòû ïîêàíàëüíî, ñåê.
CPU_INT32U CounterChannelTimeLong[CHANNELS_NUM];
// Ñóììà äåíåã ïîêàíàëüíî
CPU_INT32U CounterChannelMoneyLong[CHANNELS_NUM];
CPU_INT32U CounterRunLong; CPU_INT32U CounterRunLong;
CPU_INT32U CounterTimeLong; CPU_INT32U CounterTimeLong;
CPU_INT32U CounterMoneyLong; CPU_INT32U CounterMoneyLong;
CPU_INT16U crc;
}TCountersLong;
CPU_INT32U CounterCoinLong; // ñ÷åò÷èê âûäàííûõ æåòîíîâ
CPU_INT32U CounterCashLong; // ñ÷åò÷èê ïîëó÷åííûõ íàëè÷íûõ
CPU_INT32U CounterBankLong; // ñ÷åò÷èê áåçíàëè÷íûõ äåíåã
CPU_INT16U crc;
}TCountersLong;
extern CPU_INT32U GetShortMoney(); extern CPU_INT32U GetShortMoney();
extern void IncBillnomCounter(CPU_INT32U index); extern void IncBillnomCounter(CPU_INT32U index);
@ -154,7 +154,7 @@ extern int TstCriticalErrors(void);
extern void ClearEventJournal(void); extern void ClearEventJournal(void);
extern void GetEventStr(char* str, char event); 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_INT08U ch, CPU_INT32U time, CPU_INT32U money); extern void IncCounter(CPU_INT32U time, 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

@ -1878,7 +1878,9 @@ CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"
"ÔÐ:C7h-Ïîëå íå", "ÔÐ:C7h-Ïîëå íå",
"ÔÐ:Ñ8h-Îòñóòñòâóþò", "ÔÐ:Ñ8h-Îòñóòñòâóþò",
"", "",
"" "",
"ОШИБКА ХОППЕРА",
"ХОППЕР: Нет жетонов"
}; };
@ -2041,7 +2043,9 @@ CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] = {"", "", "", "",
"ðåäàêòèðóåòñÿ", "ðåäàêòèðóåòñÿ",
"èìïóëüñû òàõî.", "èìïóëüñû òàõî.",
"", "",
"" "",
"",
"",
}; };
TDataDescStruct const JournalErrorNumberDesc1 = { TDataDescStruct const JournalErrorNumberDesc1 = {
@ -2509,133 +2513,6 @@ TDataDescStruct const CounterLongTimeDesc = {
0 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 = { TDataDescStruct const AcceptedBankMoneyCRC16Desc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà DATA_DESC_EDIT, // òèï äåñêðèïòîðà
@ -2958,6 +2835,45 @@ TDataDescStruct const AcceptedBankMoneyCRC16Desc = {
0 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"}, {&RegimeHopperDesc, "RegimeHopperDesc"},
{&PrintModeDesc, "PrintModeDesc"}, {&PrintModeDesc, "PrintModeDesc"},
{&PrintTimeoutAfterDesc, "PrintTimeoutAfterDesc"},
{NULL, ""} {NULL, ""}
}; };

View File

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

View File

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

View File

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

View File

@ -34,12 +34,12 @@
<ShowCodeCoverage>0</ShowCodeCoverage><ShowInstrProfiling>0</ShowInstrProfiling></Disassembly> <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> <Windows>
<Wnd0> <Wnd3>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-4454-14979</Identity> <Identity>TabID-4454-14979</Identity>
@ -53,9 +53,9 @@
<Factory>Build</Factory> <Factory>Build</Factory>
<Session/> <Session/>
</Tab> </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> <Tabs>
<Tab> <Tab>
<Identity>TabID-15203-14983</Identity> <Identity>TabID-15203-14983</Identity>
@ -67,7 +67,7 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd1><Wnd2> <SelectedTab>0</SelectedTab></Wnd4><Wnd5>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-25951-14986</Identity> <Identity>TabID-25951-14986</Identity>
@ -77,20 +77,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd2></Windows> <SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor> <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> <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> </Desktop>
</Project> </Project>

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0 LimitSize=0
ByteLimit=50 ByteLimit=50
[DebugChecksum] [DebugChecksum]
Checksum=-770169122 Checksum=-949798228
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0
@ -57,7 +57,9 @@ Symbiont=0
[Disassemble mode] [Disassemble mode]
mode=0 mode=0
[Breakpoints2] [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] [Aliases]
Count=0 Count=0
SuppressDialog=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> </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\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> <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> </Desktop>
</Workspace> </Workspace>

File diff suppressed because it is too large Load Diff