сигналы печати

This commit is contained in:
dimoniche 2019-06-04 00:17:38 +03:00
parent 17e8233316
commit 08f1927b7a
12 changed files with 311 additions and 102 deletions

View File

@ -22,20 +22,13 @@
CPU_INT32U SystemTime; CPU_INT32U SystemTime;
CPU_INT32U money_timestamp[COUNT_POST + COUNT_VACUUM]; CPU_INT32U money_timestamp[COUNT_POST + COUNT_VACUUM];
CPU_INT08U EnabledChannelsNum;
CPU_INT08U RecentChannel;
CPU_INT08U UserMenuState;
#define USER_STATE_FIRST_PAGE 0
#define USER_STATE_ACCEPT_MONEY 1
#define USER_STATE_SHOW_THANKS 2
CPU_INT08U ThanksCtr;
CPU_INT08U ChannelsState[CHANNELS_NUM]; CPU_INT08U ChannelsState[COUNT_POST + COUNT_VACUUM];
#define CHANNEL_STATE_FREE 0 #define CHANNEL_STATE_FREE 0
#define CHANNEL_STATE_BUSY 1 #define CHANNEL_STATE_BUSY 1
#define CHANNEL_STATE_DISABLED 2 #define CHANNEL_STATE_DISABLED 2
CPU_INT32U ChannelsCounters[CHANNELS_NUM]; CPU_INT32U ChannelsCounters[COUNT_POST + COUNT_VACUUM];
CPU_INT32U ChannelsPayedTime[CHANNELS_NUM]; CPU_INT32U ChannelsPayedTime[COUNT_POST + COUNT_VACUUM];
CPU_INT32U incas_bill_nom_counter[24]; CPU_INT32U incas_bill_nom_counter[24];
CPU_INT32U incas_common_bill_counter; CPU_INT32U incas_common_bill_counter;
@ -88,7 +81,21 @@ void AddOutPulses(int count, int len_ms)
#endif #endif
/*! int drawPostInfo[COUNT_POST + COUNT_VACUUM] = {0,0,0,0,0,0,0,0};
int currentPosition = 0;
void DrawMenu(void)
{
if((SystemTime%2))
{
UserPrintMoneyMenu(currentPosition++);
RefreshMenu();
if(currentPosition >= COUNT_POST + COUNT_VACUUM) currentPosition = 0;
}
}
/*
Ñåðâåð îáðàáîòêè ñîáûòèé ïîëüçîâàòåëÿ Ñåðâåð îáðàáîòêè ñîáûòèé ïîëüçîâàòåëÿ
*/ */
void UserAppTask(void *p_arg) void UserAppTask(void *p_arg)
@ -96,7 +103,6 @@ void UserAppTask(void *p_arg)
CPU_INT32U print_timeout; CPU_INT32U print_timeout;
CPU_INT32U accmoney; CPU_INT32U accmoney;
int event; int event;
CPU_BOOLEAN dontRedraw = DEF_FALSE;
#ifdef BOARD_CENTRAL_CFG #ifdef BOARD_CENTRAL_CFG
@ -112,12 +118,23 @@ void UserAppTask(void *p_arg)
{ {
switch (event){ switch (event){
#ifdef BOARD_CENTRAL_CFG #ifdef BOARD_CENTRAL_CFG
case EVENT_SEC: case EVENT_UPATE_RTC:
// ïðîâåðêà ðåæèìà {
CheckMode(); // ïðî÷èòàåì òåêóùåå âðåìÿ
CPU_INT32U time = GetTimeSec();
// ïðî÷èòàåì òåêóùåå âðåìÿ if(SystemTime != time)
SystemTime = GetTimeSec(); {
SystemTime = time;
PostUserEvent(EVENT_SEC);
}
// ïðîâåðêà ðåæèìà
CheckMode();
}
break;
case EVENT_SEC:
// ðàáî÷èé ñåðâåð - ñ÷åò÷èêè, ñîñòîÿíèÿ è ò.ï. // ðàáî÷èé ñåðâåð - ñ÷åò÷èêè, ñîñòîÿíèÿ è ò.ï.
WorkServer(); WorkServer();
@ -148,6 +165,7 @@ void UserAppTask(void *p_arg)
{ {
UserPrintErrorMenu(); UserPrintErrorMenu();
RefreshMenu(); RefreshMenu();
// âûêëþ÷èì ïðèåì äåíåã // âûêëþ÷èì ïðèåì äåíåã
if (was_critical_error == 0) if (was_critical_error == 0)
{ {
@ -164,48 +182,41 @@ void UserAppTask(void *p_arg)
break; break;
} }
dontRedraw = DEF_FALSE;
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++) for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{ {
accmoney = GetAcceptedMoney(post); accmoney = GetAcceptedMoney(post);
if (accmoney > 0) if (accmoney > 0)
{ {
UserPrintMoneyMenu(post); drawPostInfo[post] = 1;
RefreshMenu();
dontRedraw = DEF_TRUE;
LED_OK_ON(); LED_OK_ON();
CheckFiscalStatus(); CheckFiscalStatus();
// ïå÷àòü ïî âíåøíåìó ñèãíàëó, æäåì òàéìàóò îòìåíû
GetData(&PrintTimeoutAfterDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX);
if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout)
{ {
// ïå÷àòü ïî âíåøíåìó ñèãíàëó, æäåì òàéìàóò îòìåíû SetAcceptedMoney(0, post);
GetData(&PrintTimeoutAfterDesc, &print_timeout, 0, DATA_FLAG_SYSTEM_INDEX);
if (labs(OSTimeGet() - money_timestamp[post]) > 1000UL * print_timeout) UserPrintThanksMenu(post);
{ RefreshMenu();
SetAcceptedMoney(0, post);
UserPrintThanksMenu(post); OSTimeDly(1000);
RefreshMenu(); LED_OK_OFF();
OSTimeDly(1000);
LED_OK_OFF();
}
} }
} }
else else
{ {
drawPostInfo[post] = 0;
LED_OK_OFF(); LED_OK_OFF();
} }
// ïðèíèìàåì äåíüãè
if(!dontRedraw)
{
UserPrintMoneyMenu(0xFFFF);
RefreshMenu();
}
} }
// ïðèíèìàåì äåíüãè
DrawMenu();
break; break;
case EVENT_MODE_CHANGE: case EVENT_MODE_CHANGE:
@ -236,13 +247,7 @@ void UserAppTask(void *p_arg)
SetAcceptedMoney(accmoney, number_post); SetAcceptedMoney(accmoney, number_post);
money_timestamp[number_post] = OSTimeGet(); money_timestamp[number_post] = OSTimeGet();
if (UserMenuState == USER_STATE_ACCEPT_MONEY) if (money) SaveEventRecord(number_post, JOURNAL_EVENT_MONEY_COIN_POST1 + number_post, money);
{
UserPrintMoneyMenu(number_post);
RefreshMenu();
}
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_COIN_POST1 + number_post, money);
} }
break; break;
case EVENT_CASH_INSERTED_POST1: case EVENT_CASH_INSERTED_POST1:
@ -265,13 +270,7 @@ void UserAppTask(void *p_arg)
SetAcceptedMoney(accmoney, number_post); SetAcceptedMoney(accmoney, number_post);
money_timestamp[number_post] = OSTimeGet(); money_timestamp[number_post] = OSTimeGet();
if (UserMenuState == USER_STATE_ACCEPT_MONEY) if (money) SaveEventRecord(number_post, JOURNAL_EVENT_MONEY_NOTE_POST1 + number_post, money);
{
UserPrintMoneyMenu(number_post);
RefreshMenu();
}
if (money) SaveEventRecord(RecentChannel, JOURNAL_EVENT_MONEY_NOTE_POST1 + number_post, money);
} }
break; break;
@ -360,11 +359,11 @@ void UserAppTask(void *p_arg)
{ {
if (PrintFiscalBill(accmoney) == 0) // çäåñü äîáàâèòü ñ êàêîãî ïîñòà ÷åê if (PrintFiscalBill(accmoney) == 0) // çäåñü äîáàâèòü ñ êàêîãî ïîñòà ÷åê
{ {
SaveEventRecord(RecentChannel, JOURNAL_EVENT_PRINT_BILL, GetTimeSec()); SaveEventRecord(number_post, JOURNAL_EVENT_PRINT_BILL_POST1 + number_post, GetTimeSec());
} }
} }
IncCounter(RecentChannel, ChannelsPayedTime[RecentChannel], accmoney); IncCounter(number_post, ChannelsPayedTime[number_post], accmoney);
SetAcceptedMoney(0, number_post); SetAcceptedMoney(0, number_post);
OSTimeDly(1000); OSTimeDly(1000);

View File

@ -36,6 +36,7 @@ extern CPU_INT32U incas_common_bill_counter;
enum{ enum{
EVENT_SEC = 1, EVENT_SEC = 1,
EVENT_STARTUP, EVENT_STARTUP,
EVENT_UPATE_RTC,
EVENT_COIN_INSERTED_POST1, EVENT_COIN_INSERTED_POST1,
EVENT_COIN_INSERTED_POST2, EVENT_COIN_INSERTED_POST2,

View File

@ -163,6 +163,12 @@ void GetEventStr(char* str, char event)
case JOURNAL_EVENT_MONEY_COIN_POST6: case JOURNAL_EVENT_MONEY_COIN_POST6:
sprintf(str, "Âí.ìîíåòû ïîñò 6"); sprintf(str, "Âí.ìîíåòû ïîñò 6");
break; break;
case JOURNAL_EVENT_MONEY_COIN_VACUUM1:
sprintf(str, "Âí.ìîíåòû ïûë.1");
break;
case JOURNAL_EVENT_MONEY_COIN_VACUUM2:
sprintf(str, "Âí.ìîíåòû ïûë.2");
break;
case JOURNAL_EVENT_START_SESSION: case JOURNAL_EVENT_START_SESSION:
sprintf(str, "Ïå÷àòü ÷åêà "); sprintf(str, "Ïå÷àòü ÷åêà ");
@ -173,9 +179,32 @@ void GetEventStr(char* str, char event)
case JOURNAL_EVENT_DEVICE_ON: case JOURNAL_EVENT_DEVICE_ON:
sprintf(str, "Âêëþ÷åíèå"); sprintf(str, "Âêëþ÷åíèå");
break; break;
case JOURNAL_EVENT_PRINT_BILL:
sprintf(str, "Ïå÷àòü ÷åêà"); case JOURNAL_EVENT_PRINT_BILL_POST1:
sprintf(str, "Ïå÷àòü ÷åêà ïîñò 1");
break; break;
case JOURNAL_EVENT_PRINT_BILL_POST2:
sprintf(str, "Ïå÷àòü ÷åêà ïîñò 2");
break;
case JOURNAL_EVENT_PRINT_BILL_POST3:
sprintf(str, "Ïå÷àòü ÷åêà ïîñò 3");
break;
case JOURNAL_EVENT_PRINT_BILL_POST4:
sprintf(str, "Ïå÷àòü ÷åêà ïîñò 4");
break;
case JOURNAL_EVENT_PRINT_BILL_POST5:
sprintf(str, "Ïå÷àòü ÷åêà ïîñò 5");
break;
case JOURNAL_EVENT_PRINT_BILL_POST6:
sprintf(str, "Ïå÷àòü ÷åêà ïîñò 6");
break;
case JOURNAL_EVENT_PRINT_BILL_VACUUM1:
sprintf(str, "Ïå÷àòü ÷åêà ïûë.1");
break;
case JOURNAL_EVENT_PRINT_BILL_VACUUM2:
sprintf(str, "Ïå÷àòü ÷åêà ïûë.2");
break;
case JOURNAL_EVENT_PRINT_Z: case JOURNAL_EVENT_PRINT_Z:
sprintf(str, "Ïå÷àòü îò÷åòà î çàêð.ñì."); sprintf(str, "Ïå÷àòü îò÷åòà î çàêð.ñì.");
break; break;
@ -246,6 +275,12 @@ void GetEventStrEng(char* str, char event)
case JOURNAL_EVENT_MONEY_COIN_POST6: case JOURNAL_EVENT_MONEY_COIN_POST6:
sprintf(str, " | Vneseny monety post 6"); sprintf(str, " | Vneseny monety post 6");
break; break;
case JOURNAL_EVENT_MONEY_COIN_VACUUM1:
sprintf(str, " | Vneseny monety vacuu1");
break;
case JOURNAL_EVENT_MONEY_COIN_VACUUM2:
sprintf(str, " | Vneseny monety vacuu2");
break;
case JOURNAL_EVENT_START_SESSION: case JOURNAL_EVENT_START_SESSION:
sprintf(str, " | Print bill "); sprintf(str, " | Print bill ");
@ -256,9 +291,32 @@ void GetEventStrEng(char* str, char event)
case JOURNAL_EVENT_DEVICE_ON: case JOURNAL_EVENT_DEVICE_ON:
sprintf(str, " | Vkluchenie "); sprintf(str, " | Vkluchenie ");
break; break;
case JOURNAL_EVENT_PRINT_BILL:
sprintf(str, " | Pechat' checka "); case JOURNAL_EVENT_PRINT_BILL_POST1:
sprintf(str, " | Pechat' checka post 1");
break; break;
case JOURNAL_EVENT_PRINT_BILL_POST2:
sprintf(str, " | Pechat' checka post 2");
break;
case JOURNAL_EVENT_PRINT_BILL_POST3:
sprintf(str, " | Pechat' checka post 3");
break;
case JOURNAL_EVENT_PRINT_BILL_POST4:
sprintf(str, " | Pechat' checka post 4");
break;
case JOURNAL_EVENT_PRINT_BILL_POST5:
sprintf(str, " | Pechat' checka post 5");
break;
case JOURNAL_EVENT_PRINT_BILL_POST6:
sprintf(str, " | Pechat' checka post 6");
break;
case JOURNAL_EVENT_PRINT_BILL_VACUUM1:
sprintf(str, " | Pechat' checka vacuu1");
break;
case JOURNAL_EVENT_PRINT_BILL_VACUUM2:
sprintf(str, " | Pechat' checka vacuu2");
break;
case JOURNAL_EVENT_PRINT_Z: case JOURNAL_EVENT_PRINT_Z:
sprintf(str, " | Pechat' Z-otcheta "); sprintf(str, " | Pechat' Z-otcheta ");
break; break;
@ -321,7 +379,7 @@ void PrintEventJournalRecordEng(char* str, TEventRecord *record)
{ {
sprintf(&str[strlen(str)], ""); sprintf(&str[strlen(str)], "");
} }
else if (record->event == JOURNAL_EVENT_PRINT_BILL) if ((record->event >= JOURNAL_EVENT_PRINT_BILL_POST1) && (record->event <= JOURNAL_EVENT_PRINT_BILL_VACUUM2))
{ {
sprintf(&str[strlen(str)], " "); sprintf(&str[strlen(str)], " ");
} }

View File

@ -29,28 +29,36 @@ typedef struct{
#define JOURNAL_EVENT_MONEY_COIN_POST4 10 // событие получения монеты (кол-во рублей) пост 4 #define JOURNAL_EVENT_MONEY_COIN_POST4 10 // событие получения монеты (кол-во рублей) пост 4
#define JOURNAL_EVENT_MONEY_COIN_POST5 11 // событие получения монеты (кол-во рублей) пост 5 #define JOURNAL_EVENT_MONEY_COIN_POST5 11 // событие получения монеты (кол-во рублей) пост 5
#define JOURNAL_EVENT_MONEY_COIN_POST6 12 // событие получения монеты (кол-во рублей) пост 6 #define JOURNAL_EVENT_MONEY_COIN_POST6 12 // событие получения монеты (кол-во рублей) пост 6
// çäåñü äîáàâèòü åùå äâà ñîáûòèÿ îò ïûëåñîñîâ #define JOURNAL_EVENT_MONEY_COIN_VACUUM1 13 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïûëåñîñ 1
//#define JOURNAL_EVENT_MONEY_COIN_VACUUM1 13 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïûëåñîñ 1 #define JOURNAL_EVENT_MONEY_COIN_VACUUM2 14 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïûëåñîñ 2
//#define JOURNAL_EVENT_MONEY_COIN_VACUUM1 14 // ñîáûòèå ïîëó÷åíèÿ ìîíåòû (êîë-âî ðóáëåé) ïûëåñîñ 2
#define JOURNAL_EVENT_START_SESSION 13 // ñîáûòèå íà÷àëà ñåàíñà #define JOURNAL_EVENT_START_SESSION 15 // ñîáûòèå íà÷àëà ñåàíñà
#define JOURNAL_EVENT_END_SESSION 14 // ñîáûòèå êîíöà ñåàíñà #define JOURNAL_EVENT_END_SESSION 16 // ñîáûòèå êîíöà ñåàíñà
#define JOURNAL_EVENT_DEVICE_ON 16 // âêëþ÷åíèå óñòðîéñòâà #define JOURNAL_EVENT_DEVICE_ON 18 // âêëþ÷åíèå óñòðîéñòâà
#define JOURNAL_EVENT_PRINT_BILL 17 // ïå÷àòü ÷åêà
#define JOURNAL_EVENT_PRINT_Z 18 // ïå÷àòü z-îò÷åòà #define JOURNAL_EVENT_PRINT_BILL_POST1 19 // ïå÷àòü ÷åêà ïîñò 1
#define JOURNAL_EVENT_PRINT_X 19 // ïå÷àòü x-îò÷åòà #define JOURNAL_EVENT_PRINT_BILL_POST2 20 // ïå÷àòü ÷åêà ïîñò 2
#define JOURNAL_EVENT_PRINT_BUF 20 // ïå÷àòü x-îò÷åòà #define JOURNAL_EVENT_PRINT_BILL_POST3 21 // ïå÷àòü ÷åêà ïîñò 3
#define JOURNAL_EVENT_CHANGE_MODE 21 // ñìåíà ðåæèìà #define JOURNAL_EVENT_PRINT_BILL_POST4 22 // ïå÷àòü ÷åêà ïîñò 4
#define JOURNAL_EVENT_INCASSATION 22 // èíêàññàöèÿ #define JOURNAL_EVENT_PRINT_BILL_POST5 23 // ïå÷àòü ÷åêà ïîñò 5
#define JOURNAL_EVENT_PASS_FAIL 23 // íåâåðíûé ââîä ïàðîëÿ #define JOURNAL_EVENT_PRINT_BILL_POST6 24 // ïå÷àòü ÷åêà ïîñò 6
#define JOURNAL_EVENT_EMAIL_OK 24 // ïðàâèëüíî îòïðàâëåí email #define JOURNAL_EVENT_PRINT_BILL_VACUUM1 25 // ïå÷àòü ÷åêà ïûëåñîñ 1
#define JOURNAL_EVENT_EMAIL_FAIL 25 // îøèáêà ïðè îòïðàâêå email #define JOURNAL_EVENT_PRINT_BILL_VACUUM2 26 // ïå÷àòü ÷åêà ïûëåñîñ 2
#define JOURNAL_EVENT_PRINT_Z 27 // ïå÷àòü z-îò÷åòà
#define JOURNAL_EVENT_PRINT_X 28 // ïå÷àòü x-îò÷åòà
#define JOURNAL_EVENT_PRINT_BUF 29 // ïå÷àòü x-îò÷åòà
#define JOURNAL_EVENT_CHANGE_MODE 30 // ñìåíà ðåæèìà
#define JOURNAL_EVENT_INCASSATION 31 // èíêàññàöèÿ
#define JOURNAL_EVENT_PASS_FAIL 32 // íåâåðíûé ââîä ïàðîëÿ
#define JOURNAL_EVENT_EMAIL_OK 33 // ïðàâèëüíî îòïðàâëåí email
#define JOURNAL_EVENT_EMAIL_FAIL 34 // îøèáêà ïðè îòïðàâêå email
// ошибка связи с фискальником // ошибка связи с фискальником
#define ERROR_FR_CONN 26 #define ERROR_FR_CONN 35
// ВСЕ ОШИБКИ ФР ФАТАЛЬНЫЕ // ВСЕ ОШИБКИ ФР ФАТАЛЬНЫЕ
#define ERROR_FR 27 #define ERROR_FR 36
#define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // число событий #define JOURNAL_EVENTS_COUNT (ERROR_FR+FR_ERROR_NUMBER) // число событий

View File

@ -569,20 +569,112 @@ TDataDescStruct const StatSendHourMinDesc = {
9 9
}; };
/*************************************
Èíäåêñ ïðè íàñòðîéêå ñèãíàëîâ
*************************************/
TRangeValueULONG const SignalIndexRange = {0, 7};
CPU_INT08U const SignalIndexName[] = "ÍÀÑÒ.ÑÈÃÍ.ÏÅ×.";
CPU_INT08U const SignalIndex_str0[] = "1";
CPU_INT08U const SignalIndex_str1[] = "2";
CPU_INT08U const SignalIndex_str2[] = "3";
CPU_INT08U const SignalIndex_str3[] = "4";
CPU_INT08U const SignalIndex_str4[] = "5";
CPU_INT08U const SignalIndex_str5[] = "6";
CPU_INT08U const SignalIndex_str6[] = "Ï1";
CPU_INT08U const SignalIndex_str7[] = "Ï2";
CPU_INT08U const *SignalIndexList[] = {SignalIndex_str0, SignalIndex_str1,SignalIndex_str2,SignalIndex_str3,SignalIndex_str4,SignalIndex_str5,SignalIndex_str6,SignalIndex_str7};
CPU_INT32U CoinIndex = 0;
void OnChangeSignalIndex(void)
{
}
TDataDescStruct const SignalIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&CoinIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&SignalIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeSignalIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SignalIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
SignalIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âêëþ÷åíèå ñèãíàëà ïå÷àòè
*************************************/
TRangeValueULONG const EnableSignalRange = {0, 1};
CPU_INT08U const EnableSignalName[] = "Ñèãíàë ";
CPU_INT08U const *EnableSignalList[] = {OnOffList_str0, OnOffList_str1};
void OnchangeEnableSignal(void)
{
}
TDataDescStruct const EnableSignalDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST+COUNT_VACUUM,// ðàçìåð ìàññèâà
&SignalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, enableSignalPrint), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableSignalRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeEnableSignal, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableSignalName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableSignalList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Äëèòåëüíîñòü èìïóëüñà ñèãíàëà ïå÷àòè
*************************************/
TRangeValueULONG const SignalPulseRange = {1, 60};
CPU_INT08U const SignalPulseName[] = "Äëèò.ñåê.";
TDataDescStruct const SignalPulseDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST+COUNT_VACUUM, // ðàçìåð ìàññèâà
&SignalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, signal_pulse_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&SignalPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SignalPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/************************************* /*************************************
Èíäåêñ ïðè íàñòðîéêå ìîíåòîïðèåìíèêîâ Èíäåêñ ïðè íàñòðîéêå ìîíåòîïðèåìíèêîâ
*************************************/ *************************************/
TRangeValueULONG const CoinIndexRange = {0, 5}; TRangeValueULONG const CoinIndexRange = {0, 7};
CPU_INT08U const CoinIndexName[] = "ÍÀÑÒÐ.ÌÎÍÅÒÎÏÐ."; CPU_INT08U const CoinIndexName[] = "ÍÀÑÒ.ÌÎÍÅÒÎÏÐ.";
CPU_INT08U const CoinIndex_str0[] = "1"; CPU_INT08U const CoinIndex_str0[] = "1";
CPU_INT08U const CoinIndex_str1[] = "2"; CPU_INT08U const CoinIndex_str1[] = "2";
CPU_INT08U const CoinIndex_str2[] = "3"; CPU_INT08U const CoinIndex_str2[] = "3";
CPU_INT08U const CoinIndex_str3[] = "4"; CPU_INT08U const CoinIndex_str3[] = "4";
CPU_INT08U const CoinIndex_str4[] = "5"; CPU_INT08U const CoinIndex_str4[] = "5";
CPU_INT08U const CoinIndex_str5[] = "6"; CPU_INT08U const CoinIndex_str5[] = "6";
CPU_INT08U const *CoinIndexList[] = {CoinIndex_str0, CoinIndex_str1,CoinIndex_str2,CoinIndex_str3,CoinIndex_str4,CoinIndex_str5}; CPU_INT08U const CoinIndex_str6[] = "Ï1";
CPU_INT08U const CoinIndex_str7[] = "Ï2";
CPU_INT32U CoinIndex = 0; CPU_INT08U const *CoinIndexList[] = {CoinIndex_str0, CoinIndex_str1,CoinIndex_str2,CoinIndex_str3,CoinIndex_str4,CoinIndex_str5,CoinIndex_str6,CoinIndex_str7};
void OnChangeCoinIndex(void) void OnChangeCoinIndex(void)
{ {
@ -622,7 +714,7 @@ TDataDescStruct const EnableCoinDesc = {
DATA_TYPE_ULONG, // òèï ïàðàìåòðà DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST+ + COUNT_VACUUM,// ðàçìåð ìàññèâà COUNT_POST+COUNT_VACUUM,// ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà &CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableCoinAcceptor), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM (void*)offsetof(TFramMap, DeviceConfig.EnableCoinAcceptor), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableCoinRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà (void*)&EnableCoinRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
@ -787,7 +879,7 @@ TDataDescStruct const PrintTimeoutAfterDesc = {
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê) DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE, DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ 60 // çíà÷åíèå ïî óìîë÷àíèþ
}; };
/************************************* /*************************************
@ -3219,6 +3311,9 @@ const TDataDescArrayStruct AllDataArray[] =
{&PrintModeDesc, "PrintModeDesc"}, {&PrintModeDesc, "PrintModeDesc"},
{&PrintTimeoutAfterDesc, "PrintTimeoutAfterDesc"}, {&PrintTimeoutAfterDesc, "PrintTimeoutAfterDesc"},
{&DisableFiscalErrorsDesc, "DisableFiscalErrorsDesc"},
{&EnableSignalDesc, "EnableSignalDesc"},
{&SignalPulseDesc, "SignalPulseDesc"},
{NULL, ""} {NULL, ""}

View File

@ -233,4 +233,9 @@ extern TDataDescStruct const TaxSystemDesc;
extern TDataDescStruct const CoinIndexDesc; extern TDataDescStruct const CoinIndexDesc;
extern TDataDescStruct const CashIndexDesc; extern TDataDescStruct const CashIndexDesc;
extern CPU_INT32U CoinIndex; extern CPU_INT32U CoinIndex;
extern TDataDescStruct const SignalIndexDesc;
extern TDataDescStruct const EnableSignalDesc;
extern TDataDescStruct const SignalPulseDesc;
#endif //#ifndef _DATADESC_H_ #endif //#ifndef _DATADESC_H_

View File

@ -58,5 +58,8 @@ typedef struct
CPU_INT32U CommandV2; CPU_INT32U CommandV2;
CPU_INT32U TaxSystem; CPU_INT32U TaxSystem;
CPU_INT32U enableSignalPrint[COUNT_POST + COUNT_VACUUM];
CPU_INT32U signal_pulse_len[COUNT_POST + COUNT_VACUUM];
}TFramMap; }TFramMap;

View File

@ -847,6 +847,7 @@ const CPU_INT08U str_DeviceMenu_1[] = "
const CPU_INT08U str_DeviceMenu_2[] = "Ìîíåòîïðèåìíèêè"; const CPU_INT08U str_DeviceMenu_2[] = "Ìîíåòîïðèåìíèêè";
//const CPU_INT08U str_DeviceMenu_3[] = "Ìîäåì"; //const CPU_INT08U str_DeviceMenu_3[] = "Ìîäåì";
const CPU_INT08U str_DeviceMenu_4[] = "Êóïþðîïðèåìíèêè"; const CPU_INT08U str_DeviceMenu_4[] = "Êóïþðîïðèåìíèêè";
const CPU_INT08U str_DeviceMenu_5[] = "Ñèãíàë ïå÷àòè";
const TMenuLine line_DeviceMenu_0 = { const TMenuLine line_DeviceMenu_0 = {
MENU_LINE_STRING, // òèï ïóíêòà ìåíþ MENU_LINE_STRING, // òèï ïóíêòà ìåíþ
@ -883,8 +884,47 @@ const TMenuLine line_DeviceMenu_3 = {
(void*)&ModemSetupPanel // ïàíåëü äëÿ ïåðåõîäà (void*)&ModemSetupPanel // ïàíåëü äëÿ ïåðåõîäà
};*/ };*/
const TMenuLineArray arr_DeviceMenuArray[] = {&line_DeviceMenu_0, &line_DeviceMenu_1, &line_DeviceMenu_2, &line_DeviceMenu_3, /*&line_DeviceMenu_4,*/ NULL}; const TMenuLine line_DeviceMenu_5 = {
const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 4, MENU_PANEL_STANDARD}; MENU_LINE_GOTO_MENU, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)str_DeviceMenu_5, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
(void*)&SignalSetupPanel // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLineArray arr_DeviceMenuArray[] = {&line_DeviceMenu_0, &line_DeviceMenu_1, &line_DeviceMenu_2, &line_DeviceMenu_3, &line_DeviceMenu_5,/*&line_DeviceMenu_4,*/ NULL};
const TMenuPanel DeviceMenuPanel[] = {arr_DeviceMenuArray, NULL, 5, MENU_PANEL_STANDARD};
/***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ñèãíàëîâ ïå÷àòè ÷åêîâ
***********************************/
const TMenuLine line_SignalMenu_0 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
MENU_FIXED_LINE|MENU_INDEX_LINE, // äîï. ôëàãè
(void*)&SignalIndexDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_SignalMenu_1 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&EnableSignalDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
const TMenuLine line_SignalMenu_2 = {
MENU_LINE_SHOW_DESC, // òèï ïóíêòà ìåíþ
0, // äîï. ôëàãè
(void*)&SignalPulseDesc, // óêàçàòåëü íà òåêñòîâóþ ñòðîêó èëè äåñêðèïòîð
NULL // ïàíåëü äëÿ ïåðåõîäà
};
void OnEnterSignalMenu(void)
{
CoinIndex = 0;
}
const TMenuLineArray arr_SignalMenuArray[] = {&line_SignalMenu_0, &line_SignalMenu_1, &line_SignalMenu_2, NULL};
const TMenuPanel SignalSetupPanel[] = {arr_SignalMenuArray, OnEnterSignalMenu, 3, MENU_PANEL_STANDARD};
/*********************************** /***********************************
@ -984,8 +1024,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, 13, MENU_PANEL_STANDARD}; const TMenuPanel FrMenuPanel[] = {arr_FrMenuArray, NULL, 11, MENU_PANEL_STANDARD};
/*********************************** /***********************************
ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÍÅÒÎÏÐÈÅÌÍÈÊÎÂ ÌÅÍÞ ÍÀÑÒÐÎÉÊÀ ÌÎÍÅÒÎÏÐÈÅÌÍÈÊÎÂ
@ -1671,7 +1711,7 @@ void PrintEventJournalRecord(TEventRecord *record)
{ {
sprintf(str_EventData, ""); sprintf(str_EventData, "");
} }
else if (record->event == JOURNAL_EVENT_PRINT_BILL) else if ((record->event >= JOURNAL_EVENT_PRINT_BILL_POST1) && (record->event <= JOURNAL_EVENT_PRINT_BILL_VACUUM2))
{ {
sprintf(str_EventData, " "); sprintf(str_EventData, " ");
} }

View File

@ -20,6 +20,7 @@ extern const TMenuPanel CommonCountersLongPanel[];
extern const TMenuPanel BillCountersPanel[]; extern const TMenuPanel BillCountersPanel[];
extern const TMenuPanel ModemSetupPanel[]; extern const TMenuPanel ModemSetupPanel[];
extern const TMenuPanel CoinSetupPanel[]; extern const TMenuPanel CoinSetupPanel[];
extern const TMenuPanel SignalSetupPanel[];
extern const TMenuPanel JournalIsReset[]; extern const TMenuPanel JournalIsReset[];
extern const TMenuPanel ClearJournalMenuPanel[]; extern const TMenuPanel ClearJournalMenuPanel[];
extern const TMenuPanel StatIsReset[]; extern const TMenuPanel StatIsReset[];

View File

@ -13,7 +13,7 @@ void RTC_Isr (void)
CPU_INT32U ilr; CPU_INT32U ilr;
ilr = ILR & 0x7; ilr = ILR & 0x7;
if (ilr & 0x1) PostUserEvent(EVENT_SEC); if (ilr & 0x1) PostUserEvent(EVENT_UPATE_RTC);
ILR = ilr; ILR = ilr;
} }
@ -51,7 +51,6 @@ void RTC_SetTime(TRTC_Data *rtc)
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
} }
extern CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk); extern CPU_INT32U BSP_CPU_PclkFreq (CPU_INT08U pclk);
void InitRTC(void) void InitRTC(void)
@ -87,7 +86,7 @@ void InitRTC(void)
CISS = 0; CISS = 0;
AMR = 0xff; AMR = 0xff;
CIIR = 0x1; // sec interrupt CIIR_bit.IMSEC = 0x1; // sec interrupt
OS_EXIT_CRITICAL(); OS_EXIT_CRITICAL();
} }

View File

@ -14,7 +14,7 @@ Count=0
Enabled=0 Enabled=0
ShowSource=1 ShowSource=1
[DebugChecksum] [DebugChecksum]
Checksum=-390368809 Checksum=-1178438452
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0

View File

@ -34,7 +34,7 @@
</Tab> </Tab>
<Tab><Identity>TabID-28963-15244</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs> <Tab><Identity>TabID-28963-15244</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>
<SelectedTab>0</SelectedTab></Wnd2><Wnd3> <SelectedTab>1</SelectedTab></Wnd2><Wnd3>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-1122-24249</Identity> <Identity>TabID-1122-24249</Identity>
@ -52,14 +52,14 @@
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.h</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>1424</SelStart><SelEnd>1424</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>49</SelStart><SelEnd>49</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>378</YPos><SelStart>10205</SelStart><SelEnd>10205</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\drivers\keyboard\keyboard.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>470</SelStart><SelEnd>470</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>2608</YPos><SelStart>122035</SelStart><SelEnd>122035</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.c</Filename><XPos>0</XPos><YPos>206</YPos><SelStart>6049</SelStart><SelEnd>6049</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>29</YPos><SelStart>1530</SelStart><SelEnd>1530</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\data.h</Filename><XPos>0</XPos><YPos>92</YPos><SelStart>2345</SelStart><SelEnd>2345</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app_cfg.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>58</SelStart><SelEnd>58</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\data.c</Filename><XPos>0</XPos><YPos>328</YPos><SelStart>9146</SelStart><SelEnd>9146</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>257</SelStart><SelEnd>269</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>1809</YPos><SelStart>71012</SelStart><SelEnd>71012</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c</Filename><XPos>0</XPos><YPos>26</YPos><SelStart>1431</SelStart><SelEnd>1431</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>496</YPos><SelStart>15112</SelStart><SelEnd>15112</SelEnd></Tab><ActiveTab>13</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>370</YPos><SelStart>4087</SelStart><SelEnd>4087</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>259</YPos><SelStart>8192</SelStart><SelEnd>8192</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\console.c</Filename><XPos>0</XPos><YPos>109</YPos><SelStart>3332</SelStart><SelEnd>3332</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\cpu\cpu.h</Filename><XPos>0</XPos><YPos>85</YPos><SelStart>4578</SelStart><SelEnd>4589</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\lib\lib_def.h</Filename><XPos>0</XPos><YPos>111</YPos><SelStart>5973</SelStart><SelEnd>5981</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>38</YPos><SelStart>1011</SelStart><SelEnd>1011</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>1277</SelStart><SelEnd>1304</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>8</YPos><SelStart>1607</SelStart><SelEnd>1607</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\menu\menu.h</Filename><XPos>0</XPos><YPos>48</YPos><SelStart>1424</SelStart><SelEnd>1424</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app_cfg.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>58</SelStart><SelEnd>58</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\data.c</Filename><XPos>0</XPos><YPos>328</YPos><SelStart>9146</SelStart><SelEnd>9146</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\8\positive_6_24\OS\app\app.c</Filename><XPos>0</XPos><YPos>26</YPos><SelStart>1431</SelStart><SelEnd>1431</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.c</Filename><XPos>0</XPos><YPos>178</YPos><SelStart>4927</SelStart><SelEnd>4927</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.c</Filename><XPos>0</XPos><YPos>196</YPos><SelStart>4265</SelStart><SelEnd>4265</SelEnd></Tab><ActiveTab>5</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\fr.c</Filename><XPos>0</XPos><YPos>4</YPos><SelStart>484</SelStart><SelEnd>484</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\console.c</Filename><XPos>0</XPos><YPos>109</YPos><SelStart>3332</SelStart><SelEnd>3332</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\cpu\cpu.h</Filename><XPos>0</XPos><YPos>85</YPos><SelStart>4578</SelStart><SelEnd>4589</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\uc\lib\lib_def.h</Filename><XPos>0</XPos><YPos>111</YPos><SelStart>5973</SelStart><SelEnd>5981</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\fram_map.h</Filename><XPos>0</XPos><YPos>42</YPos><SelStart>1154</SelStart><SelEnd>1154</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\app_serv.h</Filename><XPos>0</XPos><YPos>28</YPos><SelStart>1100</SelStart><SelEnd>1115</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.h</Filename><XPos>0</XPos><YPos>44</YPos><SelStart>3205</SelStart><SelEnd>3205</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\journal.c</Filename><XPos>0</XPos><YPos>42</YPos><SelStart>1144</SelStart><SelEnd>1144</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\time.c</Filename><XPos>0</XPos><YPos>12</YPos><SelStart>625</SelStart><SelEnd>625</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\app\app.c</Filename><XPos>0</XPos><YPos>29</YPos><SelStart>1131</SelStart><SelEnd>1131</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menu.c</Filename><XPos>0</XPos><YPos>206</YPos><SelStart>6077</SelStart><SelEnd>6077</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\iolpc2368.h</Filename><XPos>0</XPos><YPos>4662</YPos><SelStart>143604</SelStart><SelEnd>143604</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\OS\bsp\bsp.c</Filename><XPos>0</XPos><YPos>149</YPos><SelStart>6678</SelStart><SelEnd>6678</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.c</Filename><XPos>0</XPos><YPos>709</YPos><SelStart>28889</SelStart><SelEnd>28889</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\app\control.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>49</SelStart><SelEnd>49</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\data\datadesc.h</Filename><XPos>0</XPos><YPos>47</YPos><SelStart>1975</SelStart><SelEnd>1990</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\menu\menudesc.c</Filename><XPos>0</XPos><YPos>863</YPos><SelStart>36246</SelStart><SelEnd>36246</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\PROJECT\services\coin.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>43</SelStart><SelEnd>43</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-04462d18><key>iaridepm.enu1</key></Toolbar-04462d18></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>592</Bottom><Right>253</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>156250</sizeHorzCX><sizeHorzCY>210305</sizeHorzCY><sizeVertCX>199219</sizeVertCX><sizeVertCY>624606</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>314</Bottom><Right>1282</Right><x>-2</x><y>-2</y><xscreen>1284</xscreen><yscreen>316</yscreen><sizeHorzCX>1003125</sizeHorzCX><sizeHorzCY>332282</sizeHorzCY><sizeVertCX>156250</sizeVertCX><sizeVertCY>210305</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-04462d18><key>iaridepm.enu1</key></Toolbar-04462d18></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>742</Bottom><Right>253</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>156250</sizeHorzCX><sizeHorzCY>210305</sizeHorzCY><sizeVertCX>199219</sizeVertCX><sizeVertCY>782334</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>164</Bottom><Right>1282</Right><x>-2</x><y>-2</y><xscreen>1284</xscreen><yscreen>166</yscreen><sizeHorzCX>1003125</sizeHorzCX><sizeHorzCY>174553</sizeHorzCY><sizeVertCX>156250</sizeVertCX><sizeVertCY>210305</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Workspace> </Workspace>