механика работы с деньгами прием - выдача

2 часа
This commit is contained in:
Dmitriy 2021-02-15 22:09:54 +03:00
parent baac79872a
commit 2d515e9386
16 changed files with 8725 additions and 8517 deletions

File diff suppressed because it is too large Load Diff

View File

@ -60,9 +60,15 @@ void UserPrintFirstMenu(void);
void UserPrintErrorMenu(void);
CPU_INT32U GetChannelsTimeForFree(CPU_INT08U ch);
void LoadAcceptedMoney(void);
void SetAcceptedMoney(CPU_INT32U money);
void ClearAcceptedMoney(void);
CPU_INT32U GetAcceptedMoney(void);
void SetAcceptedBankMoney(CPU_INT32U money);
void ClearAcceptedBankMoney(void);
CPU_INT32U GetAcceptedBankMoney(void);
void InitPass(void);
int CheckChannelEnabled(CPU_INT08U channel);
int ChannelBusy(CPU_INT08U ch);
@ -221,6 +227,8 @@ void UserAppTask(void *p_arg)
}
accmoney = GetAcceptedMoney();
accmoney += GetAcceptedBankMoney();
if (accmoney > 0)
{
LED_OK_ON();
@ -238,7 +246,7 @@ void UserAppTask(void *p_arg)
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney) == 0)
if (PrintFiscalBill(accmoney, 0) == 0)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec());
}
@ -364,6 +372,26 @@ void UserAppTask(void *p_arg)
if (billnom_index != 0xFFFFFFFF) IncBillnomCounter(billnom_index);
}
break;
case EVENT_BANK_INSERTED:
{
CPU_INT32U cpp = 1;
CPU_INT32U money, accmoney;
GetData(&BankPerPulseDesc, &cpp, 0, DATA_FLAG_SYSTEM_INDEX);
money = cpp * GetResetbankCount();
accmoney = GetAcceptedBankMoney();
accmoney += money;
SetAcceptedBankMoney(accmoney);
money_timestamp = OSTimeGet();
if (UserMenuState == USER_STATE_ACCEPT_MONEY)
{
UserPrintMoneyMenu();
RefreshMenu();
}
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_BANK, money);
}
break;
case EVENT_BILL_ESCROW:
// êóïþðà â ïîëîæåíèè âîçâðàòà
if (IsValidatorConnected()) if (!CC_CmdPack(ADDR_FL)) SetErrorFlag(ERROR_VALIDATOR_CONN);
@ -407,7 +435,7 @@ void UserAppTask(void *p_arg)
if (IsValidatorConnected()) CC_CmdBillType(0x000000, 0x000000, ADDR_FL);
#endif
break;
case EVENT_KEY_START:
case EVENT_KEY_USER_START:
if (incassation) break;
@ -456,7 +484,23 @@ void UserAppTask(void *p_arg)
}
break;
}
// â ðàáî÷åì ðåæèìå - ïå÷àòàåì ÷åêè
PostUserEvent(EVENT_PRINT_CHECK);
break;
// íàæàëè âíåøíþþ êíîïêó
case EVENT_BUTTON_PRESS:
if (GetMode() != MODE_WORK) break;
// íàæàëè êíîïêó - âûäàäèì äåíüãè
PostUserEvent(EVENT_GIVE_COIN);
break;
// çàäà÷à ðàáîòû ñ õîïïåðîì
case EVENT_GIVE_COIN:
if (GetMode() != MODE_WORK) break;
if (TstCriticalErrors())
{
UserPrintErrorMenu();
@ -467,42 +511,141 @@ void UserAppTask(void *p_arg)
// --------------------------
// íàõîäèìñÿ â ðàáî÷åì ðåæèìå
// --------------------------
GetData(&PrintModeDesc, &print_mode, 0, DATA_FLAG_SYSTEM_INDEX);
if (print_mode == 1)
// çäåñü óïðàâëÿåì õîïïåðîì--
{
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();
if(accmoney >= HopperCost)
{
// ïîëüçîâàòåëü âíåñ äåíüãè è íàæàë ÑÒÀÐÒ + ðåæèì ïå÷àòè ÏÎ ÊÍÎÏÊÅ
CPU_INT32U accmoney = GetAcceptedMoney();
if (accmoney > 0)
{
UserPrintPrintBillMenu();
RefreshMenu();
// íàïå÷àòàåì ÷åê
if (IsFiscalConnected())
{
if (PrintFiscalBill(accmoney) == 0)
CPU_INT32U CountCoin = 0;
CountCoin = accmoney / HopperCost;
// åñëè õâàòàåò íà æåòîí
if(hopperStartButton)
{
// âûáðàíà âûäà÷à ìîíåò ïî êíîïêå
if(!hopper_mode)
{
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec());
// ðåæèì Elolution
}
}
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
{
// ðåæèì Cube
}
}
else
{
// âûäàåì ïî äîñòèæåíèþ ñòîèìîñòè æåòîíà
}
}
}
// --------------------------
// ïîñëå ðàáîòû ñ õîïïåðîì - ïå÷àòàåì ÷åêè
PostUserEvent(EVENT_PRINT_CHECK);
break;
case EVENT_PRINT_CHECK:
if (GetMode() != MODE_WORK) break;
if (TstCriticalErrors())
{
UserPrintErrorMenu();
RefreshMenu();
break;
}
// --------------------------
// íàõîäèìñÿ â ðàáî÷åì ðåæèìå
// --------------------------
// ïå÷àòàåì ÷åêè
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();
}
}
break;
@ -795,7 +938,21 @@ void LoadAcceptedMoney(void)
SetData(&AcceptedMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
// ñ÷èòàåì cîõðàíåííûå äåíüãè èç FRAM
GetData(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
// ñ÷èòàåì crc16 ýòèõ äåíåã èç FRAM
GetData(&AcceptedBankMoneyCRC16Desc, &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(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedBankMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
}
// äîáàâèòü äåíåã
@ -826,6 +983,37 @@ CPU_INT32U GetAcceptedMoney(void)
return m;
}
// äîáàâèòü äåíåã
void SetAcceptedBankMoney(CPU_INT32U money)
{
CPU_INT32U m,crc;
m=money;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedBankMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
// î÷èñòèòü ñ÷åò÷èê äåíåã
void ClearAcceptedBankMoney(void)
{
CPU_INT32U m,crc;
m=0;
crc = crc16((unsigned char*)&m, sizeof(CPU_INT32U));
SetData(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&AcceptedBankMoneyCRC16Desc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
// î÷èñòèòü ñ÷åò÷èê äåíåã
CPU_INT32U GetAcceptedBankMoney(void)
{
CPU_INT32U m;
GetData(&AcceptedBankMoneyDesc, &m, 0, DATA_FLAG_SYSTEM_INDEX);
return m;
}
// èíèöèàëèçàöèÿ ïàðîëÿ
void InitPass(void)
{

View File

@ -51,6 +51,11 @@ enum{
EVENT_NOMONEY_HOPPER_ON,
EVENT_NOMONEY_HOPPER_OFF,
EVENT_BUTTON_PRESS,
EVENT_PRINT_CHECK,
EVENT_GIVE_COIN,
EVENT_MODE_CHANGE,
EVENT_KEY_EMPTY,

View File

@ -89,9 +89,12 @@ typedef struct{
// ÂÑÅ ÎØÈÁÊÈ ÔÐ ÔÀÒÀËÜÍÛÅ
#define ERROR_FR 42
#define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // ÷èñëî ñîáûòèé
#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 // ÷èñëî ñîáûòèé
// êàíàë
CPU_INT08U channel;

View File

@ -314,7 +314,7 @@ TDataDescStruct const BankPauseLenDesc = {
};
/*************************************
Цена импульса банковского терминала в импульсном режиме
Цена импульса банковского терминала
*************************************/
TRangeValueULONG const BankPerPulseRange = {1, 9999};
CPU_INT08U const BankPerPulseName[] = "Руб./имп.";
@ -960,7 +960,7 @@ TDataDescStruct const PrintModeDesc = {
DATA_IS_INDEX, // признак индексного параметра (список строк)
PrintModeList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
1
};
/*************************************
@ -1876,7 +1876,9 @@ CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] = {"
"ФР:C2h-Превышение",
"ФР:C4h-Несовпадение",
"ФР:C7h-Поле не",
"ФР:С8h-Отсутствуют"
"ФР:С8h-Отсутствуют",
"",
""
};
@ -2037,7 +2039,9 @@ CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] = {"", "", "", "",
"напряжения",
"номеров смен",
"редактируется",
"импульсы тахо."
"импульсы тахо.",
"",
""
};
TDataDescStruct const JournalErrorNumberDesc1 = {
@ -2203,7 +2207,9 @@ CPU_INT08U const *ErrorNumberListEng[JOURNAL_EVENTS_COUNT] =
"Oshibka FR 0xC2",
"Oshibka FR 0xC4",
"Oshibka FR 0xC7",
"Oshibka FR 0xC8"
"Oshibka FR 0xC8",
"",
""
};
TDataDescStruct const JournalErrorNumberDescEng = {
@ -2913,6 +2919,44 @@ TDataDescStruct const AcceptedMoneyCRC16Desc = {
0
};
TDataDescStruct const AcceptedBankMoneyDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, FRAM_AcceptedBankMoney), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
NULL, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Дескриптор Crc16 энергонезависимого сохранения текущих денег
*************************************/
TDataDescStruct const AcceptedBankMoneyCRC16Desc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на десриптор индекса массива
(void*)offsetof(TFramMap, crc_AcceptedBankMoney), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
NULL, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
/*************************************
Дескриптор пароля
@ -3697,6 +3741,8 @@ const TDataDescArrayStruct AllDataArray[] =
{&HopperPulseLenDesc, "HopperPulseLenDesc"},
{&RegimeHopperDesc, "RegimeHopperDesc"},
{&PrintModeDesc, "PrintModeDesc"},
{NULL, ""}
};

View File

@ -271,4 +271,7 @@ extern TDataDescStruct const HopperPauseLenDesc;
extern TDataDescStruct const HopperLevelDesc;
extern TDataDescStruct const RegimeHopperDesc;
extern TDataDescStruct const AcceptedBankMoneyDesc;
extern TDataDescStruct const AcceptedBankMoneyCRC16Desc;
#endif //#ifndef _DATADESC_H_

View File

@ -23,6 +23,9 @@ typedef struct
CPU_INT32U FRAM_AcceptedMoney;
CPU_INT32U crc_AcceptedMoney;
CPU_INT32U FRAM_AcceptedBankMoney;
CPU_INT32U crc_AcceptedBankMoney;
// æóðíàë ñîáûòèé+îøèáîê
TEventRecord EventRecords[EVENT_RECORDS_COUNT];

View File

@ -884,6 +884,45 @@ int FiscCloseBillV2(CPU_INT32U pass, CPU_INT64U *cash, CPU_INT08U taxsys, char*
return FISC_OK;
}
int FiscCloseBillV2Online(CPU_INT32U pass, CPU_INT64U *cash, CPU_INT08U taxsys, char* text, CPU_INT08U* err)
{
CPU_INT08U* rxdat;
CPU_INT08U len;
fisc_buf[0] = 0x45;
memcpy(&fisc_buf[1], (CPU_INT08U*)&pass, 4);
memset(&fisc_buf[5], 0, 5);
memcpy(&fisc_buf[10], cash, 5); // online ïëàòåæ
memset(&fisc_buf[15], 0, 70);
fisc_buf[85] = 0x00; // îêðóãëåíèå äî ðóáëÿ â êîïåéêàõ
memset(&fisc_buf[86], 0, 5); // íàëîã 1
memset(&fisc_buf[91], 0, 5); // íàëîã 2
memset(&fisc_buf[96], 0, 5); // íàëîã 3
memset(&fisc_buf[101], 0, 5); // íàëîã 4
memset(&fisc_buf[106], 0, 5); // íàëîã 5
memset(&fisc_buf[111], 0, 5); // íàëîã 6
fisc_buf[116] = (1 << taxsys);
memset(&fisc_buf[117], 0, 40);
strcpy((char*)&fisc_buf[117], text);
if (FiscSendCommand(FISC_EXTENDED_CMD, fisc_buf, 157) != FISC_OK) {return FISC_ERR;}
memset(fisc_buf, 0, 256);
if (FiscReceiveAnswer(&rxdat, &len, FISC_ANSWER_TIMEOUT) != FISC_OK) {return FISC_ERR;}
*err = rxdat[2];
//if (8 != len) {return FISC_ERR;}
if ((rxdat[0] != FISC_EXTENDED_CMD) || (rxdat[1] != 0x45) || (rxdat[2] != 0)) {return FISC_ERR;}
return FISC_OK;
}
// продолжение печати (после отсутствия бумаги)
int FiscPrintContinue(CPU_INT32U pass, CPU_INT08U* err)
{

View File

@ -360,5 +360,6 @@ extern int FiscOpenDay(CPU_INT32U pass, CPU_INT08U* err);
extern int FiscMakeSellV2(CPU_INT32U pass, CPU_INT64U *count, CPU_INT64U *price, CPU_INT08U department, CPU_INT08U* tax, CPU_INT08U subj, char* text, CPU_INT08U* err);
extern int FiscCloseBillV2(CPU_INT32U pass, CPU_INT64U *cash, CPU_INT08U taxsys, char* text, CPU_INT08U* err);
extern int FiscCloseBillV2Online(CPU_INT32U pass, CPU_INT64U *cash, CPU_INT08U taxsys, char* text, CPU_INT08U* err);
#endif //#ifndef _FISCAL_H_

View File

@ -47,6 +47,11 @@ static char pend_upsignal_nomoney_hopper_counter;
static char pend_downsignal_nomoney_hopper_counter;
static CPU_INT32U pend_signal_nomoney_hopper_timestamp;
static CPU_INT32U signal_button_pulse = 1000;
static char pend_upsignal_button_counter;
static char pend_downsignal_button_counter;
static CPU_INT32U pend_signal_button_timestamp;
static CPU_INT32U cashLevel;
static CPU_INT32U coinLevel;
static CPU_INT32U bankLevel;
@ -320,16 +325,16 @@ void CoinTask(void *p_arg)
}
}
if (pend_downsignal_nomoney_hopper_counter)
if (pend_upsignal_button_counter)
{
if (OSTimeGet() - pend_signal_nomoney_hopper_timestamp > signal_nomoney_hopper_pulse)
if (OSTimeGet() - pend_signal_button_timestamp > signal_button_pulse)
{
// äåíüãè â õîïïåðå êîí÷èëèñü
PostUserEvent(EVENT_NOMONEY_HOPPER_OFF);
pend_downsignal_nomoney_hopper_counter = 0;
// êíîïêó íàæàëè
PostUserEvent(EVENT_BUTTON_PRESS);
pend_upsignal_button_counter = 0;
}
}
OS_EXIT_CRITICAL();
}
}
@ -505,7 +510,12 @@ CPU_INT32U input_register()
{
SETBIT(input, 3);
}
// 5 áèò
if (FIO1PIN_bit.P1_20)
{
SETBIT(input, 3);
}
return input;
}
@ -622,6 +632,23 @@ void InputCapture_ISR(void)
pend_downsignal_nomoney_hopper_counter = 1;
}
}
// ñèãíàë íàæàòèÿ êíîïêè
if(TSTBIT(input_event, 5))
{
pend_signal_button_timestamp = OSTimeGet();
if (FIO1PIN_bit.P1_20)
{
pend_upsignal_button_counter = 1;
pend_downsignal_button_counter = 0;
}
else
{
pend_upsignal_button_counter = 0;
pend_downsignal_button_counter = 1;
}
}
}
extern CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk);
@ -660,6 +687,12 @@ void InitInputPorts()
PINMODE3_bit.P1_24 = 0;
FIO1DIR_bit.P1_24 = 0;
FIO1MASK_bit.P1_24 = 0;
// ñèãíàë íàëè÷èÿ ìîíåò â õîïïåðå
PINSEL3_bit.P1_20 = 0;
PINMODE3_bit.P1_20 = 0;
FIO1DIR_bit.P1_20 = 0;
FIO1MASK_bit.P1_20 = 0;
}
/*
@ -669,6 +702,8 @@ P1.25 MK_P39
P1.23 MK_P37 Security Output ñ õîïïåðîì âñå â ïîðÿäêå - LOW
P1.24 MK_P38 Íèçêèé óðîâåíü ìîíåò. Åñòü ìîíåòû - ñèãíàë LOW.
P1.20 MK_P34 Ñèãíàë îò êíîïêè
*/
// èíèöèàëèçàöèÿ èìïóëüñíîãî âõîäà

View File

@ -624,7 +624,7 @@ void ClrFiscalErrorByCode(CPU_INT08U err)
// ïå÷àòü ÷åêà íà ÔÐ
// ext - ðàñøèðåííûé ôîðìàò êîìàíäû (Îïåðàöèÿ V2 ðàñøèðåííîå çàêðûòèå ÷åêà)
int PrintFiscalBill(CPU_INT32U money)
int PrintFiscalBill(CPU_INT32U money, CPU_INT32U online)
{
CPU_INT08U err;
CPU_INT64U count = 1000;
@ -737,7 +737,7 @@ repeat_sell1:
else
{
GetDataStr(&ServiceNameDesc, (CPU_INT08U*)service_name, 0, DATA_FLAG_SYSTEM_INDEX);
}
}
}
GetData(&PriceDesc, &price, 0, DATA_FLAG_SYSTEM_INDEX);
@ -881,28 +881,54 @@ repeat_close:
GetData(&TaxSystemDesc, &tax1, 0, DATA_FLAG_SYSTEM_INDEX);
tax[0] = (CPU_INT08U)tax1;
}
if (((ext == 0) && (FiscCloseBill(DEFAULT_PASS, &cash, &tax[0], "Ñïàñèáî çà ïîêóïêó!!!", &err) != FISC_OK))
|| ((ext) && (FiscCloseBillV2(DEFAULT_PASS, &cash, tax[0], "Ñïàñèáî çà ïîêóïêó!!!", &err) != FISC_OK))
)
if(online)
{
if (err)
{
SetFiscalErrorByCode(err);
}
else
{
// íåò ñîåäèíåíèÿ
ClearFiscalErrors();
FiscalConnState = FISCAL_NOCONN;
SetErrorFlag(ERROR_FR_CONN);
}
if (repeat)
{
FPost();
return -4;
}
repeat++;
if(((ext) && (FiscCloseBillV2Online(DEFAULT_PASS, &cash, tax[0], "Ñïàñèáî çà ïîêóïêó!!!", &err) != FISC_OK)))
{
if (err)
{
SetFiscalErrorByCode(err);
}
else
{
// íåò ñîåäèíåíèÿ
ClearFiscalErrors();
FiscalConnState = FISCAL_NOCONN;
SetErrorFlag(ERROR_FR_CONN);
}
if (repeat)
{
FPost();
return -4;
}
repeat++;
}
}
else
{
if (((ext == 0) && (FiscCloseBill(DEFAULT_PASS, &cash, &tax[0], "Ñïàñèáî çà ïîêóïêó!!!", &err) != FISC_OK))
|| ((ext) && (FiscCloseBillV2(DEFAULT_PASS, &cash, tax[0], "Ñïàñèáî çà ïîêóïêó!!!", &err) != FISC_OK))
)
{
if (err)
{
SetFiscalErrorByCode(err);
}
else
{
// íåò ñîåäèíåíèÿ
ClearFiscalErrors();
FiscalConnState = FISCAL_NOCONN;
SetErrorFlag(ERROR_FR_CONN);
}
if (repeat)
{
FPost();
return -4;
}
repeat++;
}
}
if (repeat)

View File

@ -14,7 +14,7 @@ extern void InitFiscal(void);
extern int IsFiscalConnected(void);
extern void FPend(void);
extern void FPost(void);
extern int PrintFiscalBill(CPU_INT32U money);
extern int PrintFiscalBill(CPU_INT32U money, CPU_INT32U online);
extern int PrintFiscalBillRepeated(CPU_INT32U money, CPU_INT32U time);
extern void SetFiscalErrorByCode(CPU_INT08U err);
extern void ClearFiscalErrors(void);

View File

@ -4,9 +4,9 @@
<Desktop>
<Static>
<Debug-Log>
<ColumnWidth0>20</ColumnWidth0>
<ColumnWidth1>1307</ColumnWidth1>
</Debug-Log>
<ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1307</ColumnWidth1></Debug-Log>
<Build>
<ColumnWidth0>20</ColumnWidth0>
<ColumnWidth1>980</ColumnWidth1>
@ -15,28 +15,31 @@
</Build>
<Workspace>
<ColumnWidths>
<Column0>124</Column0>
<Column1>27</Column1>
<Column2>27</Column2>
<Column3>27</Column3>
</ColumnWidths>
<Column0>124</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Disassembly>
<col-names>
<item>Disassembly</item>
<item>_I0</item>
</col-names>
<item>Disassembly</item><item>_I0</item></col-names>
<col-widths>
<item>500</item>
<item>20</item>
</col-widths>
<item>500</item><item>20</item></col-widths>
<DisasmHistory/>
<ShowCodeCoverage>0</ShowCodeCoverage>
<ShowInstrProfiling>0</ShowInstrProfiling>
</Disassembly>
<ShowCodeCoverage>0</ShowCodeCoverage><ShowInstrProfiling>0</ShowInstrProfiling></Disassembly>
</Static>
<Windows>
<Wnd3>
<Wnd0>
<Tabs>
<Tab>
<Identity>TabID-4454-14979</Identity>
@ -51,24 +54,20 @@
<Session/>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd3>
<Wnd4>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<Identity>TabID-15203-14983</Identity>
<TabName>Workspace</TabName>
<Factory>Workspace</Factory>
<Session>
<NodeDict>
<ExpandedNode>sk-mlpc2368</ExpandedNode>
</NodeDict>
</Session>
<NodeDict><ExpandedNode>sk-mlpc2368</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd4>
<Wnd5>
<SelectedTab>0</SelectedTab></Wnd1><Wnd2>
<Tabs>
<Tab>
<Identity>TabID-25951-14986</Identity>
@ -77,237 +76,21 @@
<Session/>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab>
</Wnd5>
</Windows>
<SelectedTab>0</SelectedTab></Wnd2></Windows>
<Editor>
<Pane>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename>
<XPos>0</XPos>
<YPos>532</YPos>
<SelStart>18305</SelStart>
<SelEnd>18305</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\validator.c</Filename>
<XPos>0</XPos>
<YPos>338</YPos>
<SelStart>8384</SelStart>
<SelEnd>8384</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\coin.c</Filename>
<XPos>0</XPos>
<YPos>511</YPos>
<SelStart>11916</SelStart>
<SelEnd>11916</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\coin.h</Filename>
<XPos>0</XPos>
<YPos>3</YPos>
<SelStart>485</SelStart>
<SelEnd>485</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\services\time.c</Filename>
<XPos>0</XPos>
<YPos>55</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>0</YPos>
<SelStart>360</SelStart>
<SelEnd>360</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename>
<XPos>0</XPos>
<YPos>73</YPos>
<SelStart>2838</SelStart>
<SelEnd>2838</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename>
<XPos>0</XPos>
<YPos>3399</YPos>
<SelStart>157293</SelStart>
<SelEnd>157293</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>0</YPos>
<SelStart>176</SelStart>
<SelEnd>176</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename>
<XPos>0</XPos>
<YPos>879</YPos>
<SelStart>37022</SelStart>
<SelEnd>37022</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\PROJECT\menu\menudesc.h</Filename>
<XPos>0</XPos>
<YPos>0</YPos>
<SelStart>779</SelStart>
<SelEnd>779</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>
<ActiveTab>13</ActiveTab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\OS\bsp\bsp.c</Filename>
<XPos>0</XPos>
<YPos>278</YPos>
<SelStart>11612</SelStart>
<SelEnd>11612</SelEnd>
</Tab>
<Tab>
<Factory>TextEditor</Factory>
<Filename>$WS_DIR$\OS\uc\os_ii\source\os_core.c</Filename>
<XPos>0</XPos>
<YPos>1366</YPos>
<SelStart>56898</SelStart>
<SelEnd>56898</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\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>
<Positions>
<Top>
<Row0>
<Sizes>
<Toolbar-049429c8>
<key>iaridepm.enu1</key>
</Toolbar-049429c8>
</Sizes>
</Row0>
<Row1>
<Sizes>
<Toolbar-06bcb290>
<key>debuggergui.enu1</key>
</Toolbar-06bcb290>
</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>
<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>
</Desktop>
</Project>

View File

@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
Checksum=1860031514
Checksum=-770169122
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
@ -38,12 +38,8 @@ Enabled=0
ShowSource=1
[JLinkDriver]
WatchCond=_ 0
Watch0=_ 0 "0x00000000" 0 "0x00000000" 0 "0x00000000" 0 "0x00000000" 0 0 0 0
Watch1=_ 0 "0x00000000" 0 "0x00000000" 0 "0x00000000" 0 "0x00000000" 0 0 0 0
[Disassemble mode]
mode=0
[Breakpoints2]
Count=0
Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
[Log file]
LoggingEnabled=_ 0
LogFile=_ ""
@ -51,9 +47,6 @@ Category=_ 0
[TermIOLog]
LoggingEnabled=_ 0
LogFile=_ ""
[Aliases]
Count=0
SuppressDialog=0
[CallStackLog]
Enabled=0
[DriverProfiling]
@ -61,3 +54,10 @@ Enabled=0
Mode=0
Graph=0
Symbiont=0
[Disassemble mode]
mode=0
[Breakpoints2]
Count=0
[Aliases]
Count=0
SuppressDialog=0

View File

@ -30,7 +30,7 @@
<Windows>
<Wnd2>
<Wnd0>
<Tabs>
<Tab>
<Identity>TabID-22094-17165</Identity>
@ -42,7 +42,7 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd2><Wnd3>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<Identity>TabID-15821-17283</Identity>
@ -58,20 +58,20 @@
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd3></Windows>
<SelectedTab>0</SelectedTab></Wnd1></Windows>
<Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>822</YPos><SelStart>24430</SelStart><SelEnd>24430</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\validator.c</Filename><XPos>0</XPos><YPos>299</YPos><SelStart>8384</SelStart><SelEnd>8384</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>599</YPos><SelStart>12815</SelStart><SelEnd>12815</SelEnd></Tab><ActiveTab>2</ActiveTab><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>39</YPos><SelStart>1299</SelStart><SelEnd>1322</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>257</YPos><SelStart>9168</SelStart><SelEnd>9168</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>3574</YPos><SelStart>165240</SelStart><SelEnd>165256</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>44</YPos><SelStart>1236</SelStart><SelEnd>1236</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>1173</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></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\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>
<Positions>
<Top><Row0><Sizes><Toolbar-046a29c8><key>iaridepm.enu1</key></Toolbar-046a29c8></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>461</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>638621</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>219</Bottom><Right>1368</Right><x>-2</x><y>-2</y><xscreen>1370</xscreen><yscreen>221</yscreen><sizeHorzCX>1002928</sizeHorzCX><sizeHorzCY>304828</sizeHorzCY><sizeVertCX>146413</sizeVertCX><sizeVertCY>275862</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></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>
</Desktop>
</Workspace>

File diff suppressed because it is too large Load Diff