Moyka/PROJECT/data/datadesc.c

2797 lines
119 KiB
C

#include <includes.h>
#include "data.h"
#include "datadesc.h"
#include "menu.h"
#include "menudesc.h"
#include "fram.h"
#include "fram_map.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include "fiscal.h"
#include "time.h"
#include "CRC16.h"
#include "coin.h"
#include "app_serv.h"
extern CPU_INT32U modem_status;
/*************************************
Ïîñëåäíåå âðåìÿ îòïðàâêè email
*************************************/
extern TRangeValueULONG const WorkTimeRange;
/*************************************
Äëèíà èìïóëüñà âõîäà ìîíåòîïðèåìíèêà, ìñ
*************************************/
TRangeValueULONG const CoinPulseLenRange = {20, 250};
CPU_INT08U const CoinPulseLenName[] = "Äëèíà èìï.,ìñ";
void OnChangeCoinPulseLen()
{
CPU_INT32U pulse, pause;
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{
GetData(&CoinPulseLenDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX);
GetData(&CoinPauseLenDesc, &pause, post, DATA_FLAG_DIRECT_INDEX);
SetCoinPulseParam(pulse, pause, post);
}
}
TDataDescStruct const CoinPulseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST + COUNT_VACUUM, // ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, coin_pulse_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CoinPulseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCoinPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CoinPulseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
50
};
/*************************************
Äëèíà èìïóëüñà âõîäà êóïþðíèêà, ìñ
*************************************/
TRangeValueULONG const CashPulseLenRange = {20, 250};
CPU_INT08U const CashPulseLenName[] = "Äëèíà èìï.,ìñ";
void OnChangeCashPulseLen()
{
CPU_INT32U pulse, pause;
for(int post = 0; post < COUNT_POST; post++)
{
GetData(&CashPulseLenDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX);
GetData(&CashPauseLenDesc, &pause, post, DATA_FLAG_DIRECT_INDEX);
SetCashPulseParam(pulse, pause, post);
}
}
TDataDescStruct const CashPulseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, cash_pulse_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashPulseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCashPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashPulseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
50
};
/*************************************
Äëèíà èìïóëüñà âõîäà áàíêîâñêîãî òåðìèíàëà, ìñ
*************************************/
TRangeValueULONG const BankPulseLenRange = {20, 250};
CPU_INT08U const BankPulseLenName[] = "Äëèíà èìï.,ìñ";
void OnChangeBankPulseLen()
{
CPU_INT32U pulse, pause;
for(int post = 0; post < COUNT_POST; post++)
{
GetData(&BankPulseLenDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX);
GetData(&BankPauseLenDesc, &pause, post, DATA_FLAG_DIRECT_INDEX);
SetBankPulseParam(pulse, pause, post);
}
}
TDataDescStruct const BankPulseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&BankIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, bank_pulse_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BankPulseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeBankPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BankPulseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
50
};
/*************************************
Äëèíà ïàóçû âõîäà ìîíåòíèêà, ìñ
*************************************/
TRangeValueULONG const CoinPauseLenRange = {20, 250};
CPU_INT08U const CoinPauseLenName[] = "Ïàóçà èìï.,ìñ";
TDataDescStruct const CoinPauseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST + COUNT_VACUUM, // ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, coin_pause_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CoinPauseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCoinPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CoinPauseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
20
};
/*************************************
Äëèíà ïàóçû âõîäà êóïþðíèêà, ìñ
*************************************/
TRangeValueULONG const CashPauseLenRange = {20, 250};
CPU_INT08U const CashPauseLenName[] = "Ïàóçà èìï.,ìñ";
TDataDescStruct const CashPauseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, cash_pause_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashPauseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCashPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashPauseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
20
};
/*************************************
Äëèíà ïàóçû âõîäà áàíêîâñêîãî òåðìèíàëà, ìñ
*************************************/
TRangeValueULONG const BankPauseLenRange = {20, 250};
CPU_INT08U const BankPauseLenName[] = "Ïàóçà èìï.,ìñ";
TDataDescStruct const BankPauseLenDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&BankIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, bank_pause_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BankPauseLenRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeBankPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BankPauseLenName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
20
};
/*************************************
Íàçâàíèå êíîïêè ÑÒÀÐÒ (ÑÒÀÐÒ èëè ÏÓÑÊ)
*************************************/
TRangeValueULONG const StartButtonNameRange = {0, 1};
CPU_INT08U const StartButtonNameName[] = "Êíîïêà";
CPU_INT08U const StartButtonNameList_str0[] = "ÑÒÀÐÒ";
CPU_INT08U const StartButtonNameList_str1[] = "ÏÓÑÊ";
CPU_INT08U const *StartButtonNameList[] = {StartButtonNameList_str0, StartButtonNameList_str1};
TDataDescStruct const StartButtonNameDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, StartButtonName), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&StartButtonNameRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
StartButtonNameName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
StartButtonNameList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Âêëþ÷åíèå êóïþðîïðèåìíèêà
*************************************/
TRangeValueULONG const EnableValidatorRange = {0, 1};
CPU_INT08U const EnableValidatorName[] = "Êóïþðîïð-ê";
CPU_INT08U const OnOffList_str0[] = "âûêë.";
CPU_INT08U const OnOffList_str1[] = "âêë.";
CPU_INT08U const *EnableValidatorList[] = {OnOffList_str0, OnOffList_str1};
TDataDescStruct const EnableValidatorDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableValidator), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableValidatorRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableValidatorName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableValidatorList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Âêëþ÷åíèå áàíêîâñêîãî òåðìèíàëà
*************************************/
TRangeValueULONG const EnableBankRange = {0, 1};
CPU_INT08U const EnableBankName[] = "Áàíê.òåðìèí.";
TDataDescStruct const EnableBankDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&BankIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableBank), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableBankRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableBankName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableValidatorList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Âêëþ÷åíèå ìîäåìà
*************************************/
TRangeValueULONG const EnableModemRange = {0, 1};
CPU_INT08U const EnableModemName[] = "Ìîäåì";
CPU_INT08U const *EnableModemList[] = {OnOffList_str0, OnOffList_str1};
void OnchangeEnableModem(void)
{
// CPU_INT32U en = 0;
// GetData(&EnableModemDesc, &en, 0, DATA_FLAG_SYSTEM_INDEX);
//
// if (en)
// {
// if (!IsModemConn())
// {
// modem_status = 2;
// }
// else if (!IsModemConf())
// {
// modem_status = 1;
// }
// //PostModemTask(MODEM_TASK_RECONNECT);
// }
}
TDataDescStruct const EnableModemDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableModem), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableModemRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeEnableModem, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableModemName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableModemList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âêëþ÷èòü îïîâåùåíèå îá îøèáêàõ ïî e-mail
*************************************/
TRangeValueULONG const EnableEmailErrorSendRange = {0, 1};
CPU_INT08U const EnableEmailErrorSendName[] = "Îïîâ.îá îø.";
CPU_INT08U const *EnableEmailErrorSendList[] = {OnOffList_str0, OnOffList_str1};
TDataDescStruct const EnableEmailErrorSendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableEmailErrorSend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableEmailErrorSendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableEmailErrorSendList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Ñòàòóñ ïîäêëþ÷åíèÿ ìîäåìà
*************************************/
CPU_INT08U const ModemStatusName[] = "Ñòàòóñ";
CPU_INT08U const *ModemStatusList[] = {"Îê", "Îø.êîíô.", "Íåò ñâÿçè"};
TDataDescStruct const ModemStatusDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
&modem_status, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ModemStatusName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ModemStatusList,// óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âêëþ÷èòü îòïðàâêó æóðíàëîâ ïî e-mail
*************************************/
CPU_INT08U const EnableEmailJournalSendName[] = "Îòïð.æóðíàëû";
TDataDescStruct const EnableEmailJournalSendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableEmailJournalSend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableEmailJournalSendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableEmailErrorSendList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Î÷èùàòü æóðíàë ïîñëå îòïðàâêè ïî e-mail ÍÅ ÈÑÏÎËÜÇÓÅÒÑß
*************************************/
CPU_INT08U const ClearJournalAfterSendName[] = "Î÷.æóðíàëû";
TDataDescStruct const ClearJournalAfterSendDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.ClearJournalAfterSend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ClearJournalAfterSendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableEmailErrorSendList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âðåìÿ îòïðàâêè ñòàòèñòèêè, ÷àñ : ìèí
*************************************/
TRangeValueULONG const StatSendHourRange = {0, 60*24 - 1};
CPU_INT08U const StatSendHourName[] = "Tîòïð.";
TDataDescStruct const StatSendHourMinDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_HOUR_MIN, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.StatSendHourMin), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&StatSendHourRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
StatSendHourName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
9
};
/*************************************
Èíäåêñ ïðè íàñòðîéêå ñèãíàëîâ
*************************************/
TRangeValueULONG const SignalIndexRange = {0, 5};
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 *SignalIndexList[] = {SignalIndex_str0, SignalIndex_str1,SignalIndex_str2,SignalIndex_str3,SignalIndex_str4,SignalIndex_str5};
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,// ðàçìåð ìàññèâà
&SignalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, enableSignalPrint), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableSignalRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeEnableSignal, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableSignalName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableSignalList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äëèòåëüíîñòü èìïóëüñà ñèãíàëà ïå÷àòè
*************************************/
TRangeValueULONG const SignalPulseRange = {1, 60};
CPU_INT08U const SignalPulseName[] = "Äëèíà.èìï.,ñåê.";
void OnChangeSinalPulseLen()
{
CPU_INT32U pulse;
for(int post = 0; post < COUNT_POST; post++)
{
GetData(&SignalPulseDesc, &pulse, post, DATA_FLAG_DIRECT_INDEX);
SetSignalPulseParam(pulse, post);
}
}
TDataDescStruct const SignalPulseDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&SignalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, signal_pulse_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&SignalPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeSinalPulseLen, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SignalPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Òàéìàóò ñèãíàëà íà÷àëà ìîéêè
*************************************/
TRangeValueULONG const SignalTimeOutRange = {0, 300};
CPU_INT08U const SignalTimeOutName[] = "Òàéìàóò,ñåê.";
TDataDescStruct const SignalTimeOutDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, signal_print_timeout_len), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&SignalTimeOutRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SignalTimeOutName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Èíäåêñ ïðè íàñòðîéêå ìîíåòîïðèåìíèêîâ
*************************************/
TRangeValueULONG const CoinIndexRange = {0, 7};
CPU_INT08U const CoinIndexName[] = "ÍÀÑÒ.ÌÎÍÅÒÎÏÐ.";
CPU_INT08U const CoinIndex_str0[] = "1";
CPU_INT08U const CoinIndex_str1[] = "2";
CPU_INT08U const CoinIndex_str2[] = "3";
CPU_INT08U const CoinIndex_str3[] = "4";
CPU_INT08U const CoinIndex_str4[] = "5";
CPU_INT08U const CoinIndex_str5[] = "6";
CPU_INT08U const CoinIndex_str6[] = "Ï1";
CPU_INT08U const CoinIndex_str7[] = "Ï2";
CPU_INT08U const *CoinIndexList[] = {CoinIndex_str0, CoinIndex_str1,CoinIndex_str2,CoinIndex_str3,CoinIndex_str4,CoinIndex_str5,CoinIndex_str6,CoinIndex_str7};
void OnChangeCoinIndex(void)
{
}
TDataDescStruct const CoinIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&CoinIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CoinIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCoinIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CoinIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CoinIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âêëþ÷åíèå ìîíåòîïðèåìíèêà
*************************************/
TRangeValueULONG const EnableCoinRange = {0, 1};
CPU_INT08U const EnableCoinName[] = "Ìîíåòîïð-ê";
CPU_INT08U const *EnableCoinList[] = {OnOffList_str0, OnOffList_str1};
void OnchangeEnableCoin(void)
{
}
TDataDescStruct const EnableCoinDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST+COUNT_VACUUM,// ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableCoinAcceptor), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableCoinRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeEnableCoin, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableCoinName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableCoinList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Öåíà èìïóëüñà ìîíåòîïðèåìíèêà
*************************************/
TRangeValueULONG const CoinPerPulseRange = {1, 9999};
CPU_INT08U const CoinPerPulseName[] = "Ðóá./èìï.";
TDataDescStruct const CoinPerPulseDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST+COUNT_VACUUM, // ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CoinPerPulse), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CoinPerPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CoinPerPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Òàéìàóò ïå÷àòè ÷åêà ìîíåòîïðèåìíèêà
*************************************/
TRangeValueULONG const CoinTimeOutRange = {1, 999};
CPU_INT08U const CoinTimeOutName[] = "Òàéìàóò";
void OnchangeTimeOutCoin(void)
{
if(CoinIndex < COUNT_POST)
{
}
}
TDataDescStruct const CoinTimeOutDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST+COUNT_VACUUM, // ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CoinTimeOut), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CoinTimeOutRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnchangeTimeOutCoin, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CoinTimeOutName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
30 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Èíäåêñ ïðè íàñòðîéêå êóïþðîïðèåìíèêîâ
*************************************/
TRangeValueULONG const CashIndexRange = {0, 5};
CPU_INT08U const CashIndexName[] = "ÍÀÑÒÐ.ÊÓÏÞÐÎÏÐ.";
void OnChangeCashIndex(void)
{
}
TDataDescStruct const CashIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&CoinIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeCashIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CoinIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Èíäåêñ ïðè íàñòðîéêå áàíêîâñêîãî òåðìèíàëà
*************************************/
TRangeValueULONG const BankIndexRange = {0, 5};
CPU_INT08U const BankIndexName[] = "ÍÀÑÒÐ.ÁÀÍÊ.ÒÅÐÌ";
void OnChangeBankIndex(void)
{
}
TDataDescStruct const BankIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&CoinIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BankIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeBankIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BankIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CoinIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Ðåæèì êóïþðíèêà
*************************************/
TRangeValueULONG const CashModeRange = {0, 1};
CPU_INT08U const CashModeName[] = "Ðåæèì";
CPU_INT08U const CashMode_str0[] = "CCNet";
CPU_INT08U const CashMode_str1[] = "Pulse";
CPU_INT08U const *CashModeList[] = {CashMode_str0, CashMode_str1};
TDataDescStruct const CashModeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CashMode), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashModeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashModeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CashModeList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Ðåæèì ïå÷àòè ÷åêà
*************************************/
TRangeValueULONG const PrintModeRange = {0, 1};
CPU_INT08U const PrintModeName[] = "Ðåæ.ïå÷àòè";
CPU_INT08U const PrintMode_str0[] = "òàéìàóò";
CPU_INT08U const PrintMode_str1[] = "êíîïêà";
CPU_INT08U const *PrintModeList[] = {PrintMode_str0, PrintMode_str1};
TDataDescStruct const PrintModeDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.PrintMode), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PrintModeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintModeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PrintModeList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Òàéìàóò ïå÷àòè ÷åêà
*************************************/
TRangeValueULONG const PrintTimeoutRange = {0, 3600};
CPU_INT08U const PrintTimeoutName[] = "Òàéìàóò ïå÷àòè";
TDataDescStruct const PrintTimeoutDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.PrintTimeout), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PrintTimeoutRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintTimeoutName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
5 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Ñòîèìîñòü ìèíóòû ìîéêè äëÿ òàéì àóòà
*************************************/
TRangeValueULONG const CashPerMinuteRange = {0, 600};
CPU_INT08U const CashPerMinuteName[] = "Ðóá./ìèí.";
TDataDescStruct const CashPerMinuteDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CashPerMinute), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashPerMinuteRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashPerMinuteName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Öåíà èìïóëüñà êóïþðíèêà â èìïóëüñíîì ðåæèìå
*************************************/
TRangeValueULONG const CashPerPulseRange = {1, 9999};
CPU_INT08U const CashPerPulseName[] = "Ðóá./èìï.";
TDataDescStruct const CashPerPulseDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CashPerPulse), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CashPerPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CashPerPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Öåíà èìïóëüñà áàíêîâñêîãî òåðìèíàëà â èìïóëüñíîì ðåæèìå
*************************************/
TRangeValueULONG const BankPerPulseRange = {1, 9999};
CPU_INT08U const BankPerPulseName[] = "Ðóá./èìï.";
TDataDescStruct const BankPerPulseDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&BankIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.BankPerPulse), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BankPerPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BankPerPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
10 // çíà÷åíèå ïî óìîë÷àíèþ
};
void OnChangeLevel()
{
CPU_INT32U level1, level2, level3, level4;
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{
if(post < COUNT_POST)
{
GetData(&CashLevelDesc, &level1, post, DATA_FLAG_DIRECT_INDEX);
GetData(&BankLevelDesc, &level2, post, DATA_FLAG_DIRECT_INDEX);
GetData(&SignalStopMoneyLevelDesc, &level3, post, DATA_FLAG_DIRECT_INDEX);
}
GetData(&CoinLevelDesc, &level4, post, DATA_FLAG_DIRECT_INDEX);
SetLevelParam(level1, level2, level3, level4, post);
}
#if OS_CRITICAL_METHOD == 3
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
InitInputPorts();
OS_EXIT_CRITICAL();
}
void OnChangeLevelWithoutInit()
{
CPU_INT32U level1, level2, level3, level4;
for(int post = 0; post < COUNT_POST + COUNT_VACUUM; post++)
{
if(post < COUNT_POST)
{
GetData(&CashLevelDesc, &level1, post, DATA_FLAG_DIRECT_INDEX);
GetData(&BankLevelDesc, &level2, post, DATA_FLAG_DIRECT_INDEX);
GetData(&SignalStopMoneyLevelDesc, &level3, post, DATA_FLAG_DIRECT_INDEX);
}
GetData(&CoinLevelDesc, &level4, post, DATA_FLAG_DIRECT_INDEX);
SetLevelParam(level1, level2, level3, level4, post);
}
}
/*************************************
Óðîâåíü ñèãíàëà êóïþðíèêà
*************************************/
TRangeValueULONG const LevelRange = {0, 1};
CPU_INT08U const LevelName[] = "Óðîâåíü";
CPU_INT08U const Level_str0[] = "LOW";
CPU_INT08U const Level_str1[] = "HIGH";
CPU_INT08U const *LevelList[] = {Level_str0, Level_str1};
TDataDescStruct const CashLevelDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&CashIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CashLevel), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&LevelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeLevel, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
LevelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
LevelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Óðîâåíü ñèãíàëà áàíêîâñêîãîã òåðìèíàëà
*************************************/
TDataDescStruct const BankLevelDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&BankIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.BankLevel), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&LevelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeLevel, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
LevelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
LevelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Óðîâåíü ñèãíàëà ìîíåòíèêà
*************************************/
TDataDescStruct const CoinLevelDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST + COUNT_VACUUM, // ðàçìåð ìàññèâà
&CoinIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.CoinLevel), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&LevelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeLevel, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
LevelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
LevelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Óðîâåíü ñèãíàëà îêîí÷àíèÿ âíåñåíèÿ äåíåã
*************************************/
CPU_INT08U const SignalStopLevelName[] = "Ñòàðò ìîéêè ";
TDataDescStruct const SignalStopMoneyLevelDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&SignalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.SignalLevel), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&LevelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeLevel, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SignalStopLevelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
LevelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Óðîâåíü ñèãíàëà ïå÷àòè ÷åêà
*************************************/
CPU_INT08U const SignalPrintLevelName[] = "Ïå÷àòü ÷åêà";
CPU_INT08U const *SignalLevelList[] = {Level_str1, Level_str0};
TDataDescStruct const SignalPrintLevelDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&SignalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.SignalLevel), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&LevelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SignalPrintLevelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
SignalLevelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Âêëþ÷åíèå ÔÐ
*************************************/
TRangeValueULONG const EnableFiscalRange = {0, 1};
CPU_INT08U const EnableFiscalName[] = "ÔÐ";
CPU_INT08U const *EnableFiscalList[] = {OnOffList_str0, OnOffList_str1};
TDataDescStruct const EnableFiscalDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableFiscal), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableFiscalRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableFiscalName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableFiscalList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Âêëþ÷åíèå ÔÐ
*************************************/
TRangeValueULONG const DisableFiscalErrorsRange = {0, 1};
CPU_INT08U const DisableFiscalErrorsName[] = "Èãíîðèð.îø.ÔÐ";
CPU_INT08U const DisableFiscalErrorsList_str0[] = "íåò";
CPU_INT08U const DisableFiscalErrorsList_str1[] = "äà";
CPU_INT08U const *DisableFiscalErrorsList[] = {DisableFiscalErrorsList_str0, DisableFiscalErrorsList_str1};
TDataDescStruct const DisableFiscalErrorsDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.DisableFiscalErrors), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DisableFiscalErrorsRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
DisableFiscalErrorsName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DisableFiscalErrorsList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Öåíà
*************************************/
TRangeValueULONG const PriceRange = {1, 10000};
CPU_INT08U const PriceName[] = "Öåíà,ðóá.";
TDataDescStruct const PriceDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Price), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PriceRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PriceName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
100
};
/*************************************
Êîìàíäà èíèöèàëèçàöèè ïî óìîë÷àíèþ
*************************************/
CPU_INT32U InitByDefault = 0;
TRangeValueULONG const InitByDefaultRange = {0, 1};
CPU_INT08U const InitByDefaultName[] = "Èíèöèàëèçàöèÿ";
CPU_INT08U const InitByDefaultList_str0[] = "íåò";
CPU_INT08U const InitByDefaultList_str1[] = "äà";
CPU_INT08U const *InitByDefaultList[] = {InitByDefaultList_str0, InitByDefaultList_str1};
void OnChangeInitByDefault(void)
{
int i = 0;
if (InitByDefault == 0) return;
while (AllDataArray[i].ptr != NULL)
{
InitDescByDefault(AllDataArray[i].ptr);
i++;
}
InitByDefault = 0;
CPU_INT08U flag[4] = {0xAA, 0x55, 0x81, 0xC3};
char name[32] = "Óñëóãè àâòîìîéêè\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
WriteArrayFram(offsetof(TFramMap, manual_service_flag), 4, (unsigned char*)&flag);
WriteArrayFram(offsetof(TFramMap, manual_service_name), 32, (unsigned char*)&name);
// î÷èñòèì ïðèíÿòûå äåíüãè
for(int i = 0; i < COUNT_POST; i++)
{
ClearAcceptedBankMoney(i);
}
for(int i = 0; i < COUNT_POST + COUNT_VACUUM; i++)
{
ClearAcceptedMoney(i);
}
}
TDataDescStruct const InitByDefaultDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&InitByDefault, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeInitByDefault, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
InitByDefaultName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
InitByDefaultList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Êîìàíäà íà ïå÷àòü Z-îò÷åòà
*************************************/
CPU_INT32U PrintZReportCmd = 0;
CPU_INT08U const PrintZReportName[] = "Îò÷.î çàêð.ñì.";
CPU_INT08U const PrintZReportList_str0[] = "íåò";
CPU_INT08U const PrintZReportList_str1[] = "ïå÷àòü";
CPU_INT08U const *PrintZReportList[] = {PrintZReportList_str0, PrintZReportList_str1};
void OnChangePrintZReportCmd(void)
{
}
TDataDescStruct const PrintZReportDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&PrintZReportCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePrintZReportCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintZReportName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PrintZReportList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Êîìàíäà íà ïå÷àòü X-îò÷åòà
*************************************/
CPU_INT32U PrintXReportCmd = 0;
CPU_INT08U const PrintXReportName[] = "X-îò÷åò";
void OnChangePrintXReportCmd(void)
{
}
TDataDescStruct const PrintXReportDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&PrintXReportCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePrintXReportCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
PrintXReportName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
PrintZReportList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Îøèáêà â æóðíàëå îøèáîê
*************************************/
TRangeValueULONG const ErrorNumberRange = {0, JOURNAL_EVENTS_COUNT - 1};
CPU_INT08U const *ErrorNumberList0[JOURNAL_EVENTS_COUNT] =
{"íåò",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "ÔÐ:Âûêëþ÷åíî",
"ÔÐ:01h-Íåèçâåñòíàÿ",
"ÔÐ:02h-Íåâåðíîå",
"ÔÐ:03h-Îøèáêà ÔÍ",
"ÔÐ:04h-Îøèáêà ÊÑ",
"ÔÐ:05h-Çàêîí÷åí ñðîê",
"ÔÐ:06h-Àðõèâ ÔÍ",
"ÔÐ:07h-Íåâåðíûå äàòà",
"ÔÐ:08h-Íåò ",
"ÔÐ:09h-Íåêîðð.",
"ÔÐ:10h-Ïðåâûøåíèå",
"ÔÐ:11h-Íåò",
"ÔÐ:12h-Èñ÷åðïàí",
"ÔÐ:14h-Èñ÷åðïàí",
"ÔÐ:15h-Èñ÷åðïàí",
"ÔÐ:16h-Ñìåíà áîëåå",
"ÔÐ:17h-Íåâåðíàÿ",
"ÔÐ:20h-Ñîîáùåíèå",
"ÔÐ:2Fh-Òàéìàóò ",
"ÔÐ:30h-ÔÍ ",
"ÔÐ:33h-Íåêîððåêòíûå",
"ÔÐ:34h-Íåò",
"ÔÐ:35h-Íåêîððåêòíûé",
"ÔÐ:36h-Íåêîððåêòíûå",
"ÔÐ:37h-Êîìàíäà",
"ÔÐ:38h-Îøèáêà",
"ÔÐ:39h-Âíóòðåííÿÿ",
"ÔÐ:3Ah-Ïåðåïîëíåíèå",
"ÔÐ:3Ch-Ñìåíà",
"ÔÐ:3Dh-Ñìåíà",
"ÔÐ:3Eh-Ïåðåïîëíåíèå",
"ÔÐ:3Fh-Ïåðåïîëíåíèå",
"ÔÐ:40h-Ïåðåïîëíåíèå",
"ÔÐ:41h-Ïåðåïîëíåíèå",
"ÔÐ:42h-Ïåðåïîëíåíèå",
"ÔÐ:43h-Ïåðåïîëíåíèå",
"ÔÐ:44h-Ïåðåïîëíåíèå",
"ÔÐ:45h-Cóììà",
"ÔÐ:46h-Íå õâàòàåò",
"ÔÐ:47h-Ïåðåïîëíåíèå",
"ÔÐ:48h-Ïåðåïîëíåíèå",
"ÔÐ:49h-Îïåð.íåâîçì.",
"ÔÐ:4Ah-Îòêðûò ÷åê",
"ÔÐ:4Bh-Áóôåð ÷åêà",
"ÔÐ:4Ch-Ïåðåïîëíåíèå",
"ÔÐ:4Dh-Âíîñèìàÿ",
"ÔÐ:4Eh-Ñìåíà",
"ÔÐ:4Fh-Íåâåðíûé ïàðîëü",
"ÔÐ:50h-Èäåò ïå÷àòü",
"ÔÐ:51h-Ïåðåïîëíåíèå",
"ÔÐ:52h-Ïåðåïîëíåíèå",
"ÔÐ:53h-Ïåðåïîëíåíèå",
"ÔÐ:54h-Ïåðåïîëíåíèå",
"ÔÐ:55h-×åê çàêðûò",
"ÔÐ:56h-Íåò äîê.",
"ÔÐ:58h-Îæèäàíèå",
"ÔÐ:59h-Äîêóìåíò",
"ÔÐ:5Bh-Ïåðåïîëíåíèå",
"ÔÐ:5Ch-Ïîíèæåíî",
"ÔÐ:5Dh-Òàáëèöà",
"ÔÐ:5Eh-Íåêîððåêòíàÿ",
"ÔÐ:5Fh-Îòðèö.",
"ÔÐ:60h-Ïåðåïîëíåíèå",
"ÔÐ:61h-Ïåðåïîëíåíèå",
"ÔÐ:62h-Ïåðåïîëíåíèå",
"ÔÐ:63h-Ïåðåïîëíåíèå",
"ÔÐ:65h-Íå õâàòàåò",
"ÔÐ:66h-Ïåðåïîëíåíèå",
"ÔÐ:68h-Íå õâàòàåò",
"ÔÐ:69h-Ïåðåïîëíåíèå",
"ÔÐ:6Ah-Îøèáêà",
"ÔÐ:6Bh-Íåò ÷åêîâîé",
"ÔÐ:6Ch-Íåò êîíòð.",
"ÔÐ:6Dh-Íå õâàòàåò",
"ÔÐ:6Eh-Ïåðåïîëíåíèå",
"ÔÐ:6Fh-Ïåðåïîëíåíèå",
"ÔÐ:71h-Îøèáêà",
"ÔÐ:72h-Êîìàíäà íå",
"ÔÐ:73h-Êîìàíäà íå",
"ÔÐ:74h-Îøèáêà ÎÇÓ",
"ÔÐ:75h-Îøèáêà",
"ÔÐ:77h-Ïðèíòåð:",
"ÔÐ:78h-Çàìåíà ÏÎ",
"ÔÏ:7Ah-Ïîëå íå",
"ÔÐ:7Bh-Îøèáêà",
"ÔÐ:7Ch-Íå ñîâïàäàåò",
"ÔÐ:7Dh-Íåâåðíûé",
"ÔÐ:7Eh-Íåâåðíîå",
"ÔÐ:7Fh-Ïåðåïîëíåíèå",
"ÔÐ:84h-Ïåðåïîëíåíèå",
"ÔÐ:85h-Ïåðåïîëíåíèå",
"ÔÐ:86h-Ïåðåïîëíåíèå",
"ÔÐ:87h-Ïåðåïîëíåíèå",
"ÔÐ:88h-Ïåðåïîëíåíèå",
"ÔÐ:89h-Ïåðåïîëíåíèå",
"ÔÐ:8Ah-Ïåðåïîëíåíèå",
"ÔÐ:8Bh-Ïåðåïîëíåíèå",
"ÔÐ:8Ch-Îòðèö.",
"ÔÐ:8Dh-Îòðèöàòåëüíûé",
"ÔÐ:8Eh-Íóëåâîé èòîã",
"ÔÐ:90h-Ïîëå ïðåâ.",
"ÔÐ:91h-Âûõîä çà",
"ÔÐ:92h-Íàëîæåíèå",
"ÔÐ:93h-Âîññòàíîâëåíèå",
"ÔÐ:94h-Èñ÷åðïàí",
"ÔÐ:C0h-Êîíòðîëü",
"ÔÐ:C2h-Ïðåâûøåíèå",
"ÔÐ:C4h-Íåñîâïàäåíèå",
"ÔÐ:C7h-Ïîëå íå",
"ÔÐ:Ñ8h-Îòñóòñòâóþò"
};
TDataDescStruct const JournalErrorNumberDesc0 = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].event), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
(void*)ErrorNumberList0, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const *ErrorNumberList1[JOURNAL_EVENTS_COUNT] =
{
"",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "ïèòàíèå",
"êîìàíäà", // ÔÐ:01h
"ñîñòîÿíèå ÔÍ",
"",
"",
"ýêñïëóàòàöèè ÔÍ",
"ïåðåïîëíåí",
"è/èëè âðåìÿ",
"çàïðîøåííûõ äàííûõ",
"çíà÷.ïàð.ê-äû",
"ðàçì.TLV äàííûõ",
"òðàíñï.ñîåä.",
"ðåñóðñ ÊÑ",
"ðåñóðñ õðàíåíèÿ",
"ðåñóðñ îæèäàíèÿ",
"24 ÷àñîâ",
"ðàçíèöà âî âðåìåíè",
"îò ÎÔÄ íå ïðèíÿòî",
"îáìåíà ñ ÔÍ",
"íå îòâå÷àåò",
"ïàðàìåòðû â ê-äå",
"äàííûõ",
"ïàðàìåòð",
"ïàðàìåòðû", // 36h
"íå ïîääåðæèâàåòñÿ",
"â ÏÇÓ",
"îøèáêà ÏÎ ÊÊÒ",
"íàê.ïî íàäá.",
"îòêð.-îïåðàöèÿ íåâîçì.",
"çàêð.-îïåðàöèÿ íåâîçì.", //3Dh
"íàêîï.ïî ñåêöèÿì",
"íàêîï.ïî ñêèäêàì",
"äèàïàçîíà ñêèäîê",
"äèàïàçîíà îïëàòû",
"äèàïàçîíà îïëàòû 2",
"äèàïàçîíà îïëàòû 3",
"äèàïàçîíà îïëàòû 4",
"ìåíüøå èòîãà ÷åêà",
"íàëè÷íîñòè â êàññå",
"íàêîïëåíèÿ ïî íàëîãàì",
"èòîãà ÷åêà",
"â îòêð.÷åêå",
"îïåðàöèÿ íåâîçìîæíà",
"ïåðåïîëíåí",
"íàêîï.ïî íàëîãàì",
"áåçíàë.ñóììà áîëüøå",
"ïðåâûñèëà 24 ÷àñà",
"",
"ïðåä.êîìàíäû",
"íàêîïëåíèé â ñìåíå",
"íàêîïëåíèé 2 â ñìåíå",
"íàêîïëåíèé 3 â ñìåíå",
"íàêîïëåíèé 4 â ñìåíå",
"îïåðàöèÿ íåâîçì.",
"äëÿ ïîâòîðà",
"êîìàíäû ïðîäîëæåíèÿ",
"îòêðûò äðóãèì îï.",
"äèàïàçîíà íàäáàâîê",
"íàïðÿæåíèå 24Â",
"íå îïðåäåëåíà",
"îïåðàöèÿ",
"èòîã ÷åêà",
"ïðè óìíîæåíèè",
"äèàïàçîíà öåíû",
"äèàïàçîíà êîë-âà",
"äèàïàçîíà îòäåëà",
"äåíåã â ñåêöèè",
"äåíåã â ñåêöèè",
"äåíåã ïî íàëîãàì",
"äåíåã ïî íàëîãàì",
"ïèòàíèÿ",
"ëåíòû",
"ëåíòû",
"äåíåã ïî íàëîãó",
"äåíåã ïî íàëîãó",
"ïî âûïëàòå â ñìåíå",
"îòðåç÷èêà",
"ïîääåðæ.",
"ïîääåðæ.",
"",
"ïèòàíèÿ",
"íåò ñèãíàëà",
"",
"ðåäàêòèðóåòñÿ",
"îáîðóäîâàíèÿ",
"äàòà",
"ôîðìàò äàòû",
"çíà÷åíèå â ïîëå äëèíû",
"äèàïàçîíà èòîãà ÷åêà",
"íàëè÷íîñòè",
"ïî ïðîäàæàì",
"ïî ïîêóïêàì",
"ïî âîçâðàòàì ïðîäàæ",
"ïî âîçâðàòàì ïîêóïîê",
"ïî âíåñåíèþ â ñìåíå",
"ïî íàäáàâêàì â ÷åêå",
"ïî ñêèäêàì â ÷åêå",
"èòîã íàäáàâêè",
"èòîã ñêèäêè â ÷åêå",
"÷åêà",
"ðàçìåð â íàñòðîéêàõ",
"ãðàíèöó ïîëÿ ïå÷àòè",
"ïîëåé",
"ÎÇÓ ïðîøëî óñïåøíî",
"ëèìèò îïåðàöèé â ÷åêå",
"äàòû è âðåìåíè",
"íàïðÿæåíèÿ",
"íîìåðîâ ñìåí",
"ðåäàêòèðóåòñÿ",
"èìïóëüñû òàõî."
};
TDataDescStruct const JournalErrorNumberDesc1 = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].event), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
(void*)ErrorNumberList1, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Ñòðîêà ñ îøèáêîé ïî-àíãëèéñêè
*************************************/
CPU_INT08U const *ErrorNumberListEng[JOURNAL_EVENTS_COUNT] =
{
"Net oshibki", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
"Oshibka svyazi s modemom",
"Oshibka svyazi s FR",
"Oshibka FR 0x01",
"Oshibka FR 0x02",
"Oshibka FR 0x03",
"Oshibka FR 0x04",
"Oshibka FR 0x05",
"Oshibka FR 0x06",
"Oshibka FR 0x07",
"Oshibka FR 0x08",
"Oshibka FR 0x09",
"Oshibka FR 0x10",
"Oshibka FR 0x11",
"Oshibka FR 0x12",
"Oshibka FR 0x14",
"Oshibka FR 0x15",
"Oshibka FR 0x16",
"Oshibka FR 0x17",
"Oshibka FR 0x20",
"Oshibka FR 0x2F",
"Oshibka FR 0x30",
"Oshibka FR 0x33",
"Oshibka FR 0x34",
"Oshibka FR 0x35",
"Oshibka FR 0x36",
"Oshibka FR 0x37",
"Oshibka FR 0x38",
"Oshibka FR 0x39",
"Oshibka FR 0x3A",
"Oshibka FR 0x3C",
"Oshibka FR 0x3D",
"Oshibka FR 0x3E",
"Oshibka FR 0x3F",
"Oshibka FR 0x40",
"Oshibka FR 0x41",
"Oshibka FR 0x42",
"Oshibka FR 0x43",
"Oshibka FR 0x44",
"Oshibka FR 0x45",
"Oshibka FR 0x46",
"Oshibka FR 0x47",
"Oshibka FR 0x48",
"Oshibka FR 0x49",
"Oshibka FR 0x4A",
"Oshibka FR 0x4B",
"Oshibka FR 0x4C",
"Oshibka FR 0x4D",
"Oshibka FR 0x4E",
"Oshibka FR 0x4F",
"Oshibka FR 0x50",
"Oshibka FR 0x51",
"Oshibka FR 0x52",
"Oshibka FR 0x53",
"Oshibka FR 0x54",
"Oshibka FR 0x55",
"Oshibka FR 0x56",
"Oshibka FR 0x58",
"Oshibka FR 0x59",
"Oshibka FR 0x5B",
"Oshibka FR 0x5C",
"Oshibka FR 0x5D",
"Oshibka FR 0x5E",
"Oshibka FR 0x5F",
"Oshibka FR 0x60",
"Oshibka FR 0x61",
"Oshibka FR 0x62",
"Oshibka FR 0x63",
"Oshibka FR 0x65",
"Oshibka FR 0x66",
"Oshibka FR 0x68",
"Oshibka FR 0x69",
"Oshibka FR 0x6A",
"Oshibka FR 0x6B",
"Oshibka FR 0x6C",
"Oshibka FR 0x6D",
"Oshibka FR 0x6E",
"Oshibka FR 0x6F",
"Oshibka FR 0x71",
"Oshibka FR 0x72",
"Oshibka FR 0x73",
"Oshibka FR 0x74",
"Oshibka FR 0x75",
"Oshibka FR 0x77",
"Oshibka FR 0x78",
"Oshibka FR 0x7A",
"Oshibka FR 0x7B",
"Oshibka FR 0x7C",
"Oshibka FR 0x7D",
"Oshibka FR 0x7E",
"Oshibka FR 0x7F",
"Oshibka FR 0x84",
"Oshibka FR 0x85",
"Oshibka FR 0x86",
"Oshibka FR 0x87",
"Oshibka FR 0x88",
"Oshibka FR 0x89",
"Oshibka FR 0x8A",
"Oshibka FR 0x8B",
"Oshibka FR 0x8C",
"Oshibka FR 0x8D",
"Oshibka FR 0x8E",
"Oshibka FR 0x90",
"Oshibka FR 0x91",
"Oshibka FR 0x92",
"Oshibka FR 0x93",
"Oshibka FR 0x94",
"Oshibka FR 0xC0",
"Oshibka FR 0xC2",
"Oshibka FR 0xC4",
"Oshibka FR 0xC7",
"Oshibka FR 0xC8"
};
TDataDescStruct const JournalErrorNumberDescEng = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].event), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
(void*)ErrorNumberList1, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Èíäåêñ ïðè ïðîñìîòðå æóðíàëà ñîáûòèé
*************************************/
TRangeValueULONG const EventJournalIndexRange = {0, 0xffffffff};
CPU_INT08U const EventJournalIndexName[] = "Çàïèñü #";
CPU_INT32U EventJournalIndex = 0;
CPU_INT32U last_Index = 0;
void OnChangeEventJournalIndex(void)
{
TEventRecord record;
if (EventJournalIndex == 0xffffffff) EventJournalIndex = EVENT_RECORDS_COUNT - 1;
else if (EventJournalIndex > EVENT_RECORDS_COUNT - 1) EventJournalIndex = 0;
GetEventRecord(&record, EventJournalIndex);
if(record.time == 0)
{
EventJournalIndex = last_Index;
return;
}
last_Index = EventJournalIndex;
PrintEventJournalRecord(&record);
}
TDataDescStruct const EventJournalIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&EventJournalIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EventJournalIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeEventJournalIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EventJournalIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Âðåìÿ ñîáûòèÿ â æóðíàëå ñîáûòèé
*************************************/
TDataDescStruct const JournalEventTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
EVENT_RECORDS_COUNT, // ðàçìåð ìàññèâà
&EventJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, EventRecords[0].time), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(TEventRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Ñèñòåìíîå âðåìÿ
*************************************/
extern CPU_INT32U SystemTime;
TDataDescStruct const SystemTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&SystemTime, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
void OnSetTime(void)
{
TRTC_Data rtc;
Sec2Date(&rtc, SystemTime);
RTC_SetTime(&rtc);
}
TDataDescStruct const SystemTimeEditDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_TIME, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&SystemTime, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnSetTime, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîìàíäà íà î÷èñòêó æóðíàëîâ
*************************************/
CPU_INT32U ClearJournalCmd = 0;
CPU_INT08U const ClearJournalCmdName[] = "Î÷èñòêà";
CPU_INT08U const ClearJournalCmdList_str0[] = "íåò";
CPU_INT08U const ClearJournalCmdList_str1[] = "äà";
CPU_INT08U const *ClearJournalCmdList[] = {ClearJournalCmdList_str0, ClearJournalCmdList_str1};
void OnChangeClearJournalCmd(void)
{
if (ClearJournalCmd)
{
ClearEventJournal();
ClearJournalCmd = 0;
}
}
TDataDescStruct const ClearJournalCmdDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&ClearJournalCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeClearJournalCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ClearJournalCmdName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ClearJournalCmdList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê ÷èñëà çàïóñêîâ
*************************************/
CPU_INT08U const CounterRunName[] = "Çàïóñêè";
TDataDescStruct const CounterRunDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterRun), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê äåíåã
*************************************/
CPU_INT08U const CounterMoneyName[] = "Äåíüãè,ðóá.";
TDataDescStruct const CounterMoneyDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê âðåìåíè ðàáîòû
*************************************/
CPU_INT08U const CounterTimeName[] = "Âð.ðàá.";
TDataDescStruct const CounterTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Counters.CounterTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê ÷èñëà çàïóñêîâ ÄËÈÍÍÛÉ
*************************************/
TDataDescStruct const CounterLongRunDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterRunLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê äåíåã ÄËÈÍÍÛÉ
*************************************/
TDataDescStruct const CounterLongMoneyDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterMoneyLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Îáùèé ñ÷åò÷èê âðåìåíè ðàáîòû
*************************************/
TDataDescStruct const CounterLongTimeDesc = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CountersLong.CounterTimeLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîìàíäà íà î÷èñòêó ñòàòèñòèêè
*************************************/
CPU_INT32U ClearStatCmd = 0;
CPU_INT08U const ClearStatCmdName[] = "Î÷èñòêà";
void OnChangeClearStatCmd(void)
{
if (ClearStatCmd)
{
ClearStatCmd = 0;
}
}
TDataDescStruct const ClearStatCmdDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&ClearStatCmd, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&InitByDefaultRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeClearStatCmd, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ClearJournalCmdName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ClearJournalCmdList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
Ðàçðåøåíèå àâòîìàòè÷åñêîãî çàêðûòèÿ ñìåí
*************************************/
TRangeValueULONG const EnableFiscalDayClearRange = {0, 1};
CPU_INT08U const EnableFiscalDayClearName[] = "Çàêð.ñìåíû";
CPU_INT08U const *EnableFiscalDayClearList[] = {"Ðó÷.", "Àâòî", "Áóôåð"};
TDataDescStruct const EnableFiscalDayClearDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.EnableFiscalDayClear), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableFiscalDayClearRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
EnableFiscalDayClearName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
EnableFiscalDayClearList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Íàñòðîéêà ÷åêà
*************************************/
TRangeValueULONG const BillFormatRange = {0, 1};
CPU_INT08U const BillFormatName[] = "×åê:";
CPU_INT08U const BillFormatList_str0[] = "êîë-âî*öåíà";
CPU_INT08U const BillFormatList_str1[] = "ñóììà";
CPU_INT08U const *BillFormatList[] = {BillFormatList_str0, BillFormatList_str1};
TDataDescStruct const BillFormatDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.BillFormat), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BillFormatRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
BillFormatName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
BillFormatList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Ñèñòåìà íàëîãîîáëîæåíèÿ
*************************************/
TRangeValueULONG const TaxSystemRange = {0, 5};
CPU_INT08U const TaxSystemName[] = "Ñèñòåìà íàë.";
CPU_INT08U const TaxSystemList_str0[] = "ÎÑÍ";
CPU_INT08U const TaxSystemList_str1[] = "ÓÑÍ ä";
CPU_INT08U const TaxSystemList_str2[] = "ÓÑÍ ä-ð";
CPU_INT08U const TaxSystemList_str3[] = "ÅÍÂÄ";
CPU_INT08U const TaxSystemList_str4[] = "ÅÑÍ";
CPU_INT08U const TaxSystemList_str5[] = "ÏÑÍ";
CPU_INT08U const *TaxSystemList[] = {TaxSystemList_str0, TaxSystemList_str1, TaxSystemList_str2, TaxSystemList_str3, TaxSystemList_str4, TaxSystemList_str5};
TDataDescStruct const TaxSystemDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, TaxSystem), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&TaxSystemRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
TaxSystemName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
TaxSystemList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Èíäåêñ íàëîãà
*************************************/
TRangeValueULONG const TaxFormatRange = {1, 6};
CPU_INT08U const TaxFormatName[] = "Íàëîã:";
CPU_INT08U const TaxFormatList_str0[] = "îòêë.";
CPU_INT08U const TaxFormatList_str1[] = " 1 ";
CPU_INT08U const TaxFormatList_str2[] = " 2 ";
CPU_INT08U const TaxFormatList_str3[] = " 3 ";
CPU_INT08U const TaxFormatList_str4[] = " 4 ";
CPU_INT08U const TaxFormatList_str5[] = " 5 ";
CPU_INT08U const TaxFormatList_str6[] = " 6 ";
CPU_INT08U const *TaxFormatList[] = {TaxFormatList_str0, TaxFormatList_str1, TaxFormatList_str2, TaxFormatList_str3, TaxFormatList_str4, TaxFormatList_str5, TaxFormatList_str6};
TDataDescStruct const TaxFormatDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, TaxFormat), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&TaxFormatRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
TaxFormatName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
TaxFormatList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
6
};
/*************************************
Ïðåäìåò ðàñ÷åòà
*************************************/
TRangeValueULONG const SubjSellRange = {0, 2};
CPU_INT08U const SubjSellName[] = "Ïðåäì.ðàñ÷åòà";
CPU_INT08U const SubjSellList_str0[] = "ÒÎÂÀÐ";
CPU_INT08U const SubjSellList_str1[] = "ÐÀÁÎÒÀ";
CPU_INT08U const SubjSellList_str2[] = "ÓÑËÓÃÀ";
CPU_INT08U const *SubjSellList[] = {SubjSellList_str0, SubjSellList_str1, SubjSellList_str2};
TDataDescStruct const SubjSellDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, SubjSell), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&SubjSellRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SubjSellName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
SubjSellList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Òèï êîìàíä ðàáîòû ñ ÷åêîì
*************************************/
TRangeValueULONG const CommandV2Range = {0, 1};
CPU_INT08U const CommandV2Name[] = "Òèï êîìàíä";
CPU_INT08U const CommandV2List_str0[] = "ñòàðûé";
CPU_INT08U const CommandV2List_str1[] = "V2";
CPU_INT08U const *CommandV2List[] = {CommandV2List_str0, CommandV2List_str1};
TDataDescStruct const CommandV2Desc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, CommandV2), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&CommandV2Range, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
CommandV2Name, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CommandV2List, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1
};
/*************************************
Íàçâàíèå óñëóãè
*************************************/
TRangeValueULONG const ServiceNameRange = {0, 1};
CPU_INT08U const ServiceNameName[] = "Òîâàð";
CPU_INT08U const ServiceNameList_str0[] = "Æåòîí";
CPU_INT08U const ServiceNameList_str1[] = "Óñëóãè ìîéêè";
CPU_INT08U const *ServiceNameList[] = {ServiceNameList_str0, ServiceNameList_str1};
void OnChangeServiceName(void)
{
CPU_INT08U flag[4] = {0, 0, 0, 0};
WriteArrayFram(offsetof(TFramMap, manual_service_flag), 4, (unsigned char*)&flag);
}
TDataDescStruct const ServiceNameDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.ServiceName), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&ServiceNameRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeServiceName, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
ServiceNameName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
ServiceNameList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
1 // çíà÷åíèå ïî óìîë÷àíèþ
};
/*************************************
Äåñêðèïòîð äëÿ ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
*************************************/
TDataDescStruct const AcceptedMoneyDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST + COUNT_VACUUM,// ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, FRAM_AcceptedMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const AcceptedMoneyName[] = "Êóï/Ìîí.ðóá.";
TDataDescStruct const AcceptedMoneyDesc1 = {
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST + COUNT_VACUUM,// ðàçìåð ìàññèâà
&StatMoneyIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, FRAM_AcceptedMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&AcceptedMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð Crc16 ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
*************************************/
TDataDescStruct const AcceptedMoneyCRC16Desc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST+COUNT_VACUUM, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, crc_AcceptedMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð äëÿ ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
*************************************/
TDataDescStruct const AcceptedBankMoneyDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, FRAM_AcceptedBankMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const AcceptedBankMoneyName[] = "Áàíê ðóá.";
TDataDescStruct const AcceptedBankMoneyDesc1 = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
&StatMoneyIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, FRAM_AcceptedBankMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&AcceptedBankMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð Crc16 ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
*************************************/
TDataDescStruct const AcceptedBankMoneyCRC16Desc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
COUNT_POST, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, crc_AcceptedBankMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð ïàðîëÿ
*************************************/
TRangeValueULONG const PassRange = {0, 9999};
CPU_INT08U const PassName[] = " ÏÀÐÎËb";
void OnChangePass(void)
{
// îáíîâèì CRC ïàðîëÿ
CPU_INT32U pass,crc;
GetData(&PassDesc, &pass, 0, DATA_FLAG_SYSTEM_INDEX);
crc = crc16((unsigned char*)&pass, sizeof(CPU_INT32U));
SetData(&PassCRCDesc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
}
TDataDescStruct const PassDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, Pass), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangePass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
DEFAULT_PASSWORD
};
/*************************************
Äåñêðèïòîð CRC ïàðîëÿ
*************************************/
TDataDescStruct const PassCRCDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, crc_Pass), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Äåñêðèïòîð âðåìåííîãî ïàðîëÿ
*************************************/
CPU_INT32U TempPass = 0;
void OnChangeTempPass(void)
{
CPU_INT32U pass;
GetData(&PassDesc, &pass, 0, DATA_FLAG_SYSTEM_INDEX);
if (GetCurrentMenu() == SetPassMenuPanel)
{ // óòàíîâêà íîâîãî ïàðîëÿ
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {GoToPreviousMenu(); GoToMenu(SetNewPassMenuPanel);}
}
else if (GetCurrentMenu() == ResetSettingsMenuPanel)
{ // ñáðîñ íàñòðîåê
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {InitByDefault = 1; OnChangeInitByDefault(); GoToPreviousMenu(); GoToMenu(SettingsIsReset);}
}
else if (GetCurrentMenu() == ClearStatMenu)
{ // î÷èñòêà ñòàòèñòèêè
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {ClearStatCmd = 1; OnChangeClearStatCmd(); GoToPreviousMenu(); GoToMenu(StatIsReset);}
}
else if (GetCurrentMenu() == ClearJournalMenuPanel)
{ // î÷èñòêà ñòàòèñòèêè
if (pass != TempPass)
{
SaveEventRecord(0, JOURNAL_EVENT_PASS_FAIL, TempPass);
GoToMenu(ErrorPassPanel);
}
else {ClearJournalCmd = 1; OnChangeClearJournalCmd(); GoToPreviousMenu(); GoToMenu(JournalIsReset);}
}
}
TDataDescStruct const PassTempDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeTempPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const PassTempName1[] = " ÏÀÐÎËb";
TDataDescStruct const PassTempDesc1 = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeTempPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassTempName1, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
TRangeValueULONG const MasterPassRange = {0, 99999999};
CPU_INT08U const MasterPassTempName[] = "ÏÀÐÎËb";
void OnChangeMasterPass(void)
{
CPU_INT32U pass, crc;
if (TempPass == MASTER_PASSWORD)
{
TempPass = 0;
pass = DEFAULT_PASSWORD;
crc = crc16((unsigned char*)&pass, sizeof(CPU_INT32U));
SetData(&PassDesc, &pass, 0, DATA_FLAG_SYSTEM_INDEX);
SetData(&PassCRCDesc, &crc, 0, DATA_FLAG_SYSTEM_INDEX);
GoToPreviousMenu();
GoToPreviousMenu();
GoToMenu(SetNewPassMenuPanel);
}
}
TDataDescStruct const MasterPassTempDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&MasterPassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeMasterPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&MasterPassTempName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
CPU_INT08U const PassTempName2[] = " ÏÀÐÎËb";
TDataDescStruct const PassTempDesc2 = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&TempPass, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&PassRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeTempPass, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
(void*)&PassTempName2, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
Êîìàíäà ïîñëàòü òåñòîâîå ñîîáùåíèå
*************************************/
CPU_INT08U const SendTestEmailName[] = "Îòïð.òåñò";
CPU_INT32U send_test;
void OnChangeSendTestEmail(void)
{
if (send_test)
{
//PostModemTask(MODEM_TASK_SEND_TEST_MSG);
send_test = 0;
}
}
TDataDescStruct const SendTestEmailDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&send_test, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&EnableEmailErrorSendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeSendTestEmail, // ôóíêöèÿ ïî èçìåíåíèþ
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
SendTestEmailName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DisableFiscalErrorsList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
/*************************************
ID óñòðîéñòâà
*************************************/
CPU_INT08U const DeviceIDName[] = "ID óñò-âà";
TRangeValueULONG const DeviceIDRange = {0, 9999};
TDataDescStruct const DeviceIDDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, DeviceConfig.DeviceId), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeviceIDRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
DeviceIDName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0
};
/*************************************
IP-àäðåñ ñâîé
*************************************/
void OnChangeIpMask()
{
CPU_INT32U ip, mask;
GetData(&IpAddrDesc, &ip, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&NetMaskDesc, &mask, 0, DATA_FLAG_SYSTEM_INDEX);
NetIP_CfgAddrThisHost(ip, mask);
}
TRangeValueULONG const DeferredStartRange = {0, 1};
CPU_INT08U const DeferredStart_str0[] = "íåò";
CPU_INT08U const DeferredStart_str1[] = "äà";
CPU_INT08U const *DeferredStartList[] = {DeferredStart_str0, DeferredStart_str1, NULL};
CPU_INT08U const IpAddrName[] = "IP";
TDataDescStruct const IpAddrDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_IP_ADDR, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, ip), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeIpMask, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
IpAddrName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0xC0A80064
};
/*************************************
Ìåñêà ñåòè
*************************************/
CPU_INT08U const NetMaskName[] = "MSK";
TDataDescStruct const NetMaskDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_IP_ADDR, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, netmask), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeIpMask, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
NetMaskName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0xFFFFFF00
};
/*************************************
Øëþç
*************************************/
void OnChangeGateway()
{
CPU_INT32U gw;
GetData(&GatewayDesc, &gw, 0, DATA_FLAG_SYSTEM_INDEX);
NetIP_CfgAddrDfltGateway(gw);
}
CPU_INT08U const GatewayName[] = "GW";
TDataDescStruct const GatewayDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_IP_ADDR, // òèï ïàðàìåòðà
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
1, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)offsetof(TFramMap, gateway), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeGateway, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
GatewayName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_DISABLE,
0xC0A80001
};
/*************************************
Èíäåêñ ïðè ïðîñìîòðå òåêóùåãî êîëè÷åñòâà äåíåã
*************************************/
CPU_INT08U const StatIndexName[] = "ÑÓÌÌÛ ÏÎ ÏÎÑÒÓ";
TDataDescStruct const StatMoneyIndexDesc = {
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
0, // ðàçìåð ìàññèâà
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
(void*)&CoinIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
(void*)&BankIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
OnChangeBankIndex, // ôóíêöèÿ ïî èçìåíåíèþ
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
StatIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
CoinIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
DATA_INIT_ENABLE,
0
};
//**************************************************
const TDataDescArrayStruct AllDataArray[] =
{
{&EnableValidatorDesc, "EnableValidatorDesc"},
{&EnableModemDesc, "EnableModemDesc"},
{&EnableFiscalDesc, "EnableFiscalDesc"},
{&EnableCoinDesc, "EnableCoinDesc"},
{&PrintZReportDesc, "PrintZReportDesc"},
{&PrintXReportDesc, "PrintXReportDesc"},
{&SystemTimeDesc, "SystemTimeDesc"},
{&SystemTimeEditDesc, "SystemTimeEditDesc"},
{&CoinPerPulseDesc, "CoinPerPulseDesc"},
{&BillFormatDesc, "BillFormatDesc"},
{&PassDesc, "PassDesc"},
{&DeviceIDDesc, "DeviceIDDesc"},
{&EnableEmailErrorSendDesc, "EnableEmailErrorSendDesc"},
{&EnableEmailJournalSendDesc, "EnableEmailJournalSendDesc"},
{&ClearJournalAfterSendDesc, "ClearJournalAfterSendDesc"},
{&StatSendHourMinDesc, "StatSendHourMinDesc"},
{&SendTestEmailDesc, "SendTestEmailDesc"},
{&StartButtonNameDesc, "StartButtonNameDesc"},
{&GatewayDesc, "GatewayDesc"},
{&NetMaskDesc, "NetMaskDesc"},
{&IpAddrDesc, "IpAddrDesc"},
{&CashModeDesc, "CashModeDesc"},
{&CashPerPulseDesc, "CashPerPulseDesc"},
{&EnableFiscalDayClearDesc, "EnableFiscalDayClearDesc"},
{&PrintTimeoutDesc, "PrintTimeoutDesc"},
{&PriceDesc, "PriceDesc"},
{&ServiceNameDesc, "ServiceNameDesc"},
{&CashPulseLenDesc, "CashPulseLenDesc"},
{&CashPauseLenDesc, "CashPauseLenDesc"},
{&CoinPulseLenDesc, "CoinPulseLenDesc"},
{&CoinPauseLenDesc, "CoinPauseLenDesc"},
{&TaxSystemDesc, "TaxSystemDesc"},
{&TaxFormatDesc, "TaxFormatDesc"},
{&SubjSellDesc, "SubjSellDesc"},
{&CommandV2Desc, "CommandV2Desc"},
{&ServiceNameDesc, "ServiceNameDesc"},
{&PrintModeDesc, "PrintModeDesc"},
{&DisableFiscalErrorsDesc, "DisableFiscalErrorsDesc"},
{&EnableSignalDesc, "EnableSignalDesc"},
{&SignalPulseDesc, "SignalPulseDesc"},
{&SignalTimeOutDesc, "SignalTimeOutDesc"},
{&CashPerMinuteDesc, "CashPerMinuteDesc"},
{&CashLevelDesc, "CashLevelDesc"},
{&CoinLevelDesc, "CoinLevelDesc"},
{&SignalStopMoneyLevelDesc, "SignalStopMoneyLevelDesc"},
{&EnableBankDesc, "EnableBankDesc"},
{&BankPerPulseDesc, "BankPerPulseDesc"},
{&BankPulseLenDesc, "BankPulseLenDesc"},
{&BankPauseLenDesc, "BankPauseLenDesc"},
{&BankLevelDesc, "BankLevelDesc"},
{&CoinTimeOutDesc, "CoinTimeOutDesc"},
{NULL, ""}
};