mirror of
https://github.com/dimoniche/solarium.git
synced 2026-01-30 09:53:30 +03:00
2799 lines
125 KiB
Plaintext
2799 lines
125 KiB
Plaintext
#include <includes.h>
|
|
#include "data.h"
|
|
#include "datadesc.h"
|
|
#include "menu.h"
|
|
#include "menudesc.h"
|
|
#include "fram_map.h"
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stddef.h>
|
|
#include "control.h"
|
|
#include "fiscal.h"
|
|
#include "time.h"
|
|
#include "CRC16.h"
|
|
#include "modem_task.h"
|
|
#include "modem.h"
|
|
|
|
extern CPU_INT32U modem_status;
|
|
|
|
/*************************************
|
|
Èíäåêñ êàíàëà
|
|
*************************************/
|
|
CPU_INT32U ChannelIndex=0;
|
|
TRangeValueULONG const ChannelIndexRange = {0, CHANNELS_NUM-1};
|
|
CPU_INT08U const ChannelIndexName[] = " ÊÀÍÀË";
|
|
CPU_INT08U const* ChannelItems[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
|
|
|
|
TDataDescStruct const ChannelIndexDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
&ChannelIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&ChannelIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
ChannelIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
ChannelItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Èíäåêñ êàíàëà â ìåíþ êàíàëüíîé ñòàòèñòèè
|
|
*************************************/
|
|
CPU_INT08U const ChannelStIndexName[] = "ÊÎÐ.Ñ×.ÊÀÍÀË";
|
|
|
|
TDataDescStruct const ChannelStIndexDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
&ChannelIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&ChannelIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
ChannelStIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
ChannelItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Èíäåêñ êàíàëà â ìåíþ êàíàëüíîé ñòàòèñòèè
|
|
*************************************/
|
|
CPU_INT08U const ChannelStLongIndexName[] = "ÄË.Ñ×.ÊÀÍÀË";
|
|
|
|
TDataDescStruct const ChannelStLongIndexDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
&ChannelIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&ChannelIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
ChannelStLongIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
ChannelItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Ïîñëåäíåå âðåìÿ îòïðàâêè email
|
|
*************************************/
|
|
extern TRangeValueULONG const WorkTimeRange;
|
|
|
|
TDataDescStruct const LastEmailSendTime = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, LastEmailTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&WorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Âêëþ÷åíèå êàíàëà
|
|
*************************************/
|
|
TRangeValueULONG const EnableChannelRange = {0, 1};
|
|
CPU_INT08U const EnableChannelName[] = "Ñîñòîÿíèå";
|
|
CPU_INT08U const EnableChannelList_str0[] = "âûêë.";
|
|
CPU_INT08U const EnableChannelList_str1[] = "âêë.";
|
|
CPU_INT08U const *EnableChannelList[] = {EnableChannelList_str0, EnableChannelList_str1};
|
|
|
|
|
|
TDataDescStruct const EnableChannelDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.Enable), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&EnableChannelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
EnableChannelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
EnableChannelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Íàçâàíèå êàíàëà
|
|
*************************************/
|
|
TRangeValueULONG const NameChannelRange = {0, 2};
|
|
CPU_INT08U const NameChannelName[] = "Íàçâàíèå";
|
|
CPU_INT08U const NameChannelList_str0[] = "#";
|
|
CPU_INT08U const NameChannelList_str1[] = "Ñîëÿðèé";
|
|
CPU_INT08U const NameChannelList_str2[] = "Óñòðîéñòâî";
|
|
CPU_INT08U const *NameChannelList[] = {NameChannelList_str0, NameChannelList_str1, NameChannelList_str2};
|
|
|
|
|
|
TDataDescStruct const NameChannelDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.Name), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&NameChannelRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NameChannelName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NameChannelList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Íàçâàíèå êíîïêè ÑÒÀÐÒ (ÑÒÀÐÒ èëè ÏÓÑÊ)
|
|
*************************************/
|
|
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_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, DeviceConfig.EnableValidator), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&EnableValidatorRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
EnableValidatorName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
EnableValidatorList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
1 // çíà÷åíèå ïî óìîë÷àíèþ
|
|
};
|
|
|
|
/*************************************
|
|
Âêëþ÷åíèå ìîäåìà
|
|
*************************************/
|
|
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 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_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, DeviceConfig.EnableCoinAcceptor), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&EnableCoinRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
OnchangeEnableCoin, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
EnableCoinName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
EnableCoinList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Öåíà èìïóëüñà ìîíåòîïðèåìíèêà
|
|
*************************************/
|
|
TRangeValueULONG const CoinPerPulseRange = {1, 9999};
|
|
CPU_INT08U const CoinPerPulseName[] = "Ðóá./èìï.";
|
|
|
|
TDataDescStruct const CoinPerPulseDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
0, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, DeviceConfig.CoinPerPulse), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&CoinPerPulseRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
CoinPerPulseName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
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_ENABLE,
|
|
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_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Âðåìÿ èäóùåãî ñåàíñà
|
|
*************************************/
|
|
CPU_INT32U WorkTime[CHANNELS_NUM];
|
|
TRangeValueULONG const WorkTimeRange = {0, 0xffffffffL};
|
|
CPU_INT08U const WorkTimeName[] = "Âð.ðàáîòû";
|
|
|
|
TDataDescStruct const WorkTimeDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
&WorkTime, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&WorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
WorkTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Òàéì-àóò ïåðåä çàïóñêîì ïîêàíàëüíî
|
|
*************************************/
|
|
TRangeValueULONG const TimeOutBeforeRange = {0, 999};
|
|
CPU_INT08U const TimeOutBeforeName[] = "Ïàóçà äî,ñåê.";
|
|
|
|
TDataDescStruct const TimeOutBeforeDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.TimeOutBefore), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&TimeOutBeforeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
TimeOutBeforeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
30
|
|
};
|
|
|
|
/*************************************
|
|
Òàéì-àóò ïîñëå ðàáîòû ïîêàíàëüíî
|
|
*************************************/
|
|
TRangeValueULONG const TimeOutAfterRange = {0, 99};
|
|
CPU_INT08U const TimeOutAfterName[] = "Ïàóçà ïîñëå,ìèí.";
|
|
|
|
TDataDescStruct const TimeOutAfterDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.TimeOutAfter), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&TimeOutAfterRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
TimeOutAfterName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
3
|
|
};
|
|
|
|
/*************************************
|
|
Ìàêñèìàëüíîå âðåìÿ ïîêàíàëüíî, ìèí.
|
|
*************************************/
|
|
TRangeValueULONG const MaxWorkTimeRange = {1, 999};
|
|
CPU_INT08U const MaxWorkTimeName[] = "Tmax,ìèí.";
|
|
|
|
TDataDescStruct const MaxWorkTimeDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.MaxWorkTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&MaxWorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
MaxWorkTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
20
|
|
};
|
|
|
|
/*************************************
|
|
Ìèíèìàëüíîå âðåìÿ ïîêàíàëüíî, ìèí.
|
|
*************************************/
|
|
TRangeValueULONG const MinWorkTimeRange = {1, 999};
|
|
CPU_INT08U const MinWorkTimeName[] = "Tmin,ìèí.";
|
|
|
|
TDataDescStruct const MinWorkTimeDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.MinWorkTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&MinWorkTimeRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
MinWorkTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
5
|
|
};
|
|
|
|
/*************************************
|
|
Íàñòðîéêà âûõîäíûõ
|
|
*************************************/
|
|
TRangeValueULONG const WeekEndRange = {0, 4};
|
|
CPU_INT08U const WeekEndName[] = "Âûõîäíûå:";
|
|
CPU_INT08U const WeekEndList_str0[] = "íåò";
|
|
CPU_INT08U const WeekEndList_str1[] = "ïò-âñ";
|
|
CPU_INT08U const WeekEndList_str2[] = "ñá-âñ";
|
|
CPU_INT08U const WeekEndList_str3[] = "ïò-ñá";
|
|
CPU_INT08U const WeekEndList_str4[] = "ïò-ïí";
|
|
CPU_INT08U const *WeekEndList[] = {WeekEndList_str0, WeekEndList_str1, WeekEndList_str2, WeekEndList_str3, WeekEndList_str4, NULL};
|
|
|
|
TDataDescStruct const WeekEndDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.WeekEnd), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&WeekEndRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
WeekEndName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
WeekEndList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Íàñòðîéêà îòëîæåííîãî ñòàðòà
|
|
*************************************/
|
|
TRangeValueULONG const DeferredStartRange = {0, 1};
|
|
CPU_INT08U const DeferredStartName[] = "Îòëîæ.ñòàðò";
|
|
CPU_INT08U const DeferredStart_str0[] = "íåò";
|
|
CPU_INT08U const DeferredStart_str1[] = "äà";
|
|
CPU_INT08U const *DeferredStartList[] = {DeferredStart_str0, DeferredStart_str1, NULL};
|
|
|
|
TDataDescStruct const DeferredStartDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, DefferedStartEnabled), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&DeferredStartRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
DeferredStartName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
DeferredStartList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Èíäåêñ ïðè íàñòðîéêå öåí
|
|
*************************************/
|
|
TRangeValueULONG const PeriodIndexRange = {0, 0xffffffff/*CHANNELS_NUM*PRICE_PERIODS_NUM-1*/};
|
|
CPU_INT08U const PeriodIndexName[] = "";
|
|
CPU_INT08U const *PeriodWeekendIndexList[] = {
|
|
"ÊÀÍ.1 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.1 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.1 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.1 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.2 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.2 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.2 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.2 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.3 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.3 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.3 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.3 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.4 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.4 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.4 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.4 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.5 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.5 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.5 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.5 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.6 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.6 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.6 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.6 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.7 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.7 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.7 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.7 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.8 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.8 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.8 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.8 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.9 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.9 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.9 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.9 ÏÅÐ.4 ÂÛÕ.",
|
|
"ÊÀÍ.10 ÏÅÐ.1 ÂÛÕ.",
|
|
"ÊÀÍ.10 ÏÅÐ.2 ÂÛÕ.",
|
|
"ÊÀÍ.10 ÏÅÐ.3 ÂÛÕ.",
|
|
"ÊÀÍ.10 ÏÅÐ.4 ÂÛÕ.",
|
|
NULL};
|
|
|
|
CPU_INT32U PeriodIndex = 0;
|
|
|
|
void OnChangePeriodIndex(void)
|
|
{
|
|
if ((PeriodIndex == 0xffffffff) || (PeriodIndex < ChannelIndex*PRICE_PERIODS_NUM)) PeriodIndex = (ChannelIndex+1)*PRICE_PERIODS_NUM-1;
|
|
else if (PeriodIndex >= (ChannelIndex+1)*PRICE_PERIODS_NUM) PeriodIndex = (ChannelIndex)*PRICE_PERIODS_NUM;
|
|
}
|
|
|
|
TDataDescStruct const PeriodWeekendIndexDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)&PeriodIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&PeriodIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
OnChangePeriodIndex, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
PeriodIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
PeriodWeekendIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
CPU_INT08U const *PeriodWeekdaysIndexList[] = {
|
|
"ÊÀÍ.1 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.1 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.1 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.1 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.2 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.2 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.2 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.2 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.3 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.3 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.3 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.3 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.4 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.4 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.4 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.4 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.5 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.5 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.5 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.5 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.6 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.6 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.6 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.6 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.7 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.7 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.7 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.7 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.8 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.8 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.8 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.8 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.9 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.9 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.9 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.9 ÏÅÐ.4 ÁÓÄ.",
|
|
"ÊÀÍ.10 ÏÅÐ.1 ÁÓÄ.",
|
|
"ÊÀÍ.10 ÏÅÐ.2 ÁÓÄ.",
|
|
"ÊÀÍ.10 ÏÅÐ.3 ÁÓÄ.",
|
|
"ÊÀÍ.10 ÏÅÐ.4 ÁÓÄ.",
|
|
NULL};
|
|
TDataDescStruct const PeriodWeekdaysIndexDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)&PeriodIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&PeriodIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
OnChangePeriodIndex, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
PeriodIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
PeriodWeekdaysIndexList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Öåíà ïî âûõîäíûì
|
|
*************************************/
|
|
TRangeValueULONG const PriceWeekendRange = {1, MAX_PRICE};
|
|
CPU_INT08U const PriceWeekendName[] = "Öåíà,ðóá.";
|
|
|
|
TDataDescStruct const PriceWeekendDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.Price_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&PriceWeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
PriceWeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
15
|
|
};
|
|
|
|
/*************************************
|
|
Öåíà ïî áóäíÿì
|
|
*************************************/
|
|
TRangeValueULONG const PriceWeekdaysRange = {1, MAX_PRICE};
|
|
CPU_INT08U const PriceWeekdaysName[] = "Öåíà,ðóá.";
|
|
|
|
TDataDescStruct const PriceWeekdaysDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.Price_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&PriceWeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
PriceWeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
15
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Âðåìÿ çà öåíó ïî âûõîäíûì
|
|
*************************************/
|
|
TRangeValueULONG const PriceTimeWeekendRange = {1, 999};
|
|
CPU_INT08U const PriceTimeWeekendName[] = "Çà âðåìÿ,ìèí.";
|
|
|
|
TDataDescStruct const PriceTimeWeekendDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.PriceTime_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&PriceTimeWeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
PriceTimeWeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
1
|
|
};
|
|
|
|
/*************************************
|
|
Âðåìÿ çà öåíó ïî áóäíÿì
|
|
*************************************/
|
|
TRangeValueULONG const PriceTimeWeekdaysRange = {1, 999};
|
|
CPU_INT08U const PriceTimeWeekdaysName[] = "Çà âðåìÿ,ìèí.";
|
|
|
|
TDataDescStruct const PriceTimeWeekdaysDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.PriceTime_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&PriceTimeWeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
PriceTimeWeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
1
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Íà÷àëî ïåðèîäîâ ïî áóäíÿì
|
|
*************************************/
|
|
TRangeValueULONG const T_Start_WeekdaysRange = {0, 24};
|
|
CPU_INT08U const T_Start_WeekdaysName[] = "Íà÷àëî,÷";
|
|
|
|
TDataDescStruct const T_Start_WeekdaysDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.T_Start_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&T_Start_WeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
T_Start_WeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Êîíåö ïåðèîäîâ ïî áóäíÿì
|
|
*************************************/
|
|
TRangeValueULONG const T_End_WeekdaysRange = {0, 24};
|
|
CPU_INT08U const T_End_WeekdaysName[] = "Êîíåö,÷";
|
|
|
|
TDataDescStruct const T_End_WeekdaysDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekdaysIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.T_End_Weekdays), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&T_End_WeekdaysRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
T_End_WeekdaysName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
24
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Íà÷àëî ïåðèîäîâ ïî âûõîäíûì
|
|
*************************************/
|
|
TRangeValueULONG const T_Start_WeekendRange = {0, 24};
|
|
CPU_INT08U const T_Start_WeekendName[] = "Íà÷àëî,÷";
|
|
|
|
TDataDescStruct const T_Start_WeekendDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.T_Start_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&T_Start_WeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
T_Start_WeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Êîíåö ïåðèîäîâ ïî âûõîäíûì
|
|
*************************************/
|
|
TRangeValueULONG const T_End_WeekendRange = {0, 24};
|
|
CPU_INT08U const T_End_WeekendName[] = "Êîíåö,÷";
|
|
|
|
TDataDescStruct const T_End_WeekendDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM*PRICE_PERIODS_NUM, // ðàçìåð ìàññèâà
|
|
&PeriodWeekendIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ChannelConfig.T_End_Weekend), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&T_End_WeekendRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
T_End_WeekendName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
24
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Êîìàíäà èíèöèàëèçàöèè ïî óìîë÷àíèþ
|
|
*************************************/
|
|
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;
|
|
}
|
|
|
|
|
|
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[] = "Z-îò÷åò";
|
|
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 ErrorJournalIndexRange = {0, 0xffffffff};
|
|
CPU_INT08U const ErrorJournalIndexName[] = "Çàïèñü #";
|
|
CPU_INT32U ErrorJournalIndex = 0;
|
|
|
|
void OnChangeErrorJournalIndex(void)
|
|
{
|
|
if (ErrorJournalIndex == 0xffffffff) ErrorJournalIndex = ERROR_RECORDS_NUM-1;
|
|
else if (ErrorJournalIndex > ERROR_RECORDS_NUM-1) ErrorJournalIndex = 0;
|
|
}
|
|
|
|
TDataDescStruct const ErrorJournalIndexDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)&ErrorJournalIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&ErrorJournalIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
OnChangeErrorJournalIndex, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
ErrorJournalIndexName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Îøèáêà â æóðíàëå îøèáîê
|
|
*************************************/
|
|
TRangeValueULONG const ErrorNumberRange = {0, ERRORS_NUM-1};
|
|
CPU_INT08U const *ErrorNumberList0[ERRORS_NUM] = {"íåò",
|
|
"îøèáêà ñâÿçè ñ",
|
|
"îøèáêà ðàáîòû",
|
|
"1Ch60h-âûáð.êóïþðû",
|
|
"1Ch61h-âûáð.êóïþðû",
|
|
"1Ch64h-âûáð.êóïþðû",
|
|
"1Ch65h-âûáð.êóïþðû",
|
|
"1Ch66h-âûáð.êóïþðû",
|
|
"1Ch67h-âûáð.êóïþðû",
|
|
"1Ch68h-âûáð.êóïþðû",
|
|
"1Ch69h-âûáð.êóïþðû",
|
|
"1Ch6Ch-âûáð.êóïþðû",
|
|
"ê/ï:41h-êàññåòà",
|
|
"ê/ï:42h-êàññåòà",
|
|
"ê/ï:43h-çàìèí â ",
|
|
"ê/ï:44h-çàìèí",
|
|
"ê/ï:45h-ïîïûòêà",
|
|
"ê/ï:50h-îøèáêà",
|
|
"ê/ï:51h-îøèáêà ñêîð.",
|
|
"ê/ï:52h-îøèáêà",
|
|
"ê/ï:53h-îøèáêà ìåõ.",
|
|
"ê/ï:54h-êàññåòà",
|
|
"ê/ï:65h-îøèáêà",
|
|
"ê/ï:66h-îøèáêà",
|
|
"ê/ï:67h-îøèáêà åìê.",
|
|
"îøèáêà",
|
|
"îøèáêà",
|
|
|
|
"ÔÐ:01h-íåèñïðàâåí",
|
|
"ÔÐ:02h-îòñóòñòâóåò",
|
|
"ÔÐ:03h-îòñóòñòâóåò",
|
|
"ÔÐ:04h-íåêîðð.ï-ðû",
|
|
"ÔÐ:05h-íåò",
|
|
"ÔÐ:06h-ÔÏ â ðåæèìå",
|
|
"ÔÐ:07h-íåêîðð.ï-ðû",
|
|
"ÔÐ:08h-êîìàíäà",
|
|
"ÔÐ:09h-íåêîðð.",
|
|
"ÔÐ:0Ah-ôîðìàò äàííûõ",
|
|
"ÔÐ:0Bh-íåèñïð.ÿ÷åéêà",
|
|
"ÔÐ:11h-íå ââåäåíà",
|
|
"ÔÐ:12h-çàâîäñêîé",
|
|
"ÔÐ:13h-òåêóùàÿ äàòà",
|
|
"ÔÐ:14h-ÔÏ",
|
|
"ÔÐ:15h-Ñìåíà",
|
|
"ÔÐ:16h-Ñìåíà",
|
|
"ÔÐ:17h-Îøèáêà íîìåðà",
|
|
"ÔÐ:18h-Îøèáêà äàòû",
|
|
"ÔÐ:19h-Íåò äàííûõ",
|
|
"ÔÐ:1Ah-Îîøèáêà ÔÏ",
|
|
"ÔÐ:1Bh-Çàâîäñêîé",
|
|
"ÔÐ:1Ch-Åñòü",
|
|
"ÔÐ:1Dh-Ïîâðåæäåíà",
|
|
"ÔÐ:1Fh-Îòñóòñòâóåò",
|
|
"ÔÐ:20h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:21h-Îøèáêà ñóììû",
|
|
"ÔÐ:22h-Íåâåðíàÿ äàòà",
|
|
"ÔÐ:23h-Íåò çàïèñè",
|
|
"ÔÐ:24h-Îáëàñòü",
|
|
"ÔÐ:25h-Íåò",
|
|
"ÔÐ:28h-Â ÔÏ áîëåå",
|
|
"ÔÐ:33h-Íåêîððåêòíûå",
|
|
"ÔÐ:35h-Íåêîððåêòíûé",
|
|
"ÔÐ:36h-Íåêîððåêòíûå",
|
|
"ÔÐ:37h-Êîìàíäà",
|
|
"ÔÐ:38h-Îøèáêà â ÏÇÓ",
|
|
"ÔÐ:39h-Âíóòðåííÿÿ",
|
|
"ÔÐ:3Ah-Ïåðåïîëíåíèå",
|
|
"ÔÐ:3Ch-ÝÊËÇ:",
|
|
"ÔÐ:3Eh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:3Fh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:40h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:41h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:42h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:43h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:44h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:45h-Cóììà",
|
|
"ÔÐ:46h-Íå õâàòàåò",
|
|
"ÔÐ:47h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:48h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:4Ah-Îòêðûò ÷åê",
|
|
"ÔÐ:4Bh-Áóôåð ÷åêà",
|
|
"ÔÐ:4Ch-Ïåðåïîëíåíèå",
|
|
"ÔÐ:4Dh-Âíîñèìàÿ",
|
|
"ÔÐ:4Eh-Ñìåíà",
|
|
"ÔÐ:4Fh-Íåâåðíûé ïàðîëü",
|
|
"ÔÐ:50h-Èäåò ïå÷àòü",
|
|
"ÔÐ:51h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:52h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:53h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:54h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:56h-Íåò äîê.",
|
|
"ÔÐ:57h-ÝÊËÇ:",
|
|
"ÔÐ:58h-Îæèäàíèå",
|
|
"ÔÐ:59h-Äîêóìåíò",
|
|
"ÔÐ:5Bh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:5Ch-Ïîíèæåíî",
|
|
"ÔÐ:5Dh-Òàáëèöà",
|
|
"ÔÐ:5Eh-Íåêîððåêòíàÿ",
|
|
"ÔÐ:5Fh-Îòðèö.",
|
|
"ÔÐ:60h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:61h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:62h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:63h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:64h-ÔÏ îòñóòñòâóåò",
|
|
"ÔÐ:65h-Íå õâàòàåò",
|
|
"ÔÐ:66h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:67h-Îøèáêà ñâÿçè",
|
|
"ÔÐ:68h-Íå õâàòàåò",
|
|
"ÔÐ:69h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:6Ah-Îøèáêà",
|
|
"ÔÐ:6Bh-Íåò ÷åêîâîé",
|
|
"ÔÐ:6Ch-Íåò êîíòð.",
|
|
"ÔÐ:6Dh-Íå õâàòàåò",
|
|
"ÔÐ:6Eh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:6Fh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:70h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:71h-Îøèáêà",
|
|
"ÔÐ:72h-Êîìàíäà íå",
|
|
"ÔÐ:73h-Êîìàíäà íå",
|
|
"ÔÐ:74h-Îøèáêà ÎÇÓ",
|
|
"ÔÐ:75h-Îøèáêà",
|
|
"ÔÐ:76h-Ïðèíòåð:",
|
|
"ÔÐ:77h-Ïðèíòåð:",
|
|
"ÔÐ:78h-Çàìåíà ÏÎ",
|
|
"ÔÐ:79h-Çàìåíà ÔÏ",
|
|
"ÔÏ:7Ah-Ïîëå íå",
|
|
"ÔÐ:7Bh-Îøèáêà",
|
|
"ÔÐ:7Ch-Íå ñîâïàäàåò",
|
|
"ÔÐ:7Dh-Íåâåðíûé",
|
|
"ÔÐ:7Eh-Íåâåðíîå",
|
|
"ÔÐ:7Fh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:80h-Îøèáêà",
|
|
"ÔÐ:81h-Îøèáêà",
|
|
"ÔÐ:82h-Îøèáêà",
|
|
"ÔÐ:83h-Îøèáêà",
|
|
"ÔÐ:84h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:85h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:86h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:87h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:88h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:89h-Ïåðåïîëíåíèå",
|
|
"ÔÐ:8Ah-Ïåðåïîëíåíèå",
|
|
"ÔÐ:8Bh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:8Ch-Îòðèö.",
|
|
"ÔÐ:8Dh-Îòðèöàòåëüíûé",
|
|
"ÔÐ:8Eh-Íóëåâîé èòîã",
|
|
"ÔÐ:8Fh-Êàññà íå",
|
|
"ÔÐ:90h-Ïîëå ïðåâ.",
|
|
"ÔÐ:91h-Âûõîä çà",
|
|
"ÔÐ:92h-Íàëîæåíèå",
|
|
"ÔÐ:93h-Âîññòàíîâëåíèå",
|
|
"ÔÐ:94h-Èñ÷åðïàí",
|
|
"ÔÐ:A0h-Îøèáêà ñâÿçè",
|
|
"ÔÐ:A1h-ÝÊËÇ",
|
|
"ÔÐ:A2h-ÝÊËÇ: ",
|
|
"ÔÐ:A3h-Íåêîððåêòíîå",
|
|
"ÔÐ:A4h-Àâàðèÿ ÝÊËÇ",
|
|
"ÔÐ:A5h-Àâàðèÿ ÊÑ",
|
|
"ÔÐ:A6h-Èñ÷åðïàí",
|
|
"ÔÐ:A7h-ÝÊËÇ",
|
|
"ÔÐ:A8h-ÇÊËÇ:",
|
|
"ÔÐ:A9h-ÝÊËÇ:",
|
|
"ÔÐ:AAh-Ïåðåïîëíåíèå",
|
|
"ÔÐ:B0h-ÝÊËÇ:",
|
|
"ÔÐ:B1h-ÝÊËÇ:",
|
|
"ÔÐ:B2h-ÝÊËÇ:",
|
|
"ÔÐ:C0h-Êîíòðîëü",
|
|
"ÔÐ:C1h-ÝÊËÇ:",
|
|
"ÔÐ:C2h-Ïðåâûøåíèå",
|
|
"ÔÐ:C3h-Íåñîâïàäåíèå",
|
|
"ÔÐ:C4h-Íåñîâïàäåíèå",
|
|
//"ÔÐ:Ñ5h-Áóôåð",
|
|
//"ÔÐ:C6h-Ïîäêëàäíîé",
|
|
//"ÔÐ:C7h-Ïîëå íå",
|
|
//"ÔÐ:Ñ8h-Îòñóòñòâóþò",
|
|
|
|
};
|
|
|
|
TDataDescStruct const JournalErrorNumberDesc0 = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
ERROR_RECORDS_NUM, // ðàçìåð ìàññèâà
|
|
&ErrorJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ErrorRecords[0].error), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(TErrorRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
(void*)ErrorNumberList0, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
CPU_INT08U const *ErrorNumberList1[ERRORS_NUM] = {"íåò",
|
|
"êóïþðîïðèåìíèêîì",
|
|
"êóïþðîïðèåìíèêà",
|
|
"ïðè çàìèíå",
|
|
"ïî ìàã.äàò÷èêó",
|
|
"ïðè òðàíñïîðò.",
|
|
"ïî èäåíòèôèêàöèè",
|
|
"ïî âåðèôèêàöèè ",
|
|
"ïî îïòè÷.äàò÷èêó ",
|
|
"ïî çàïðåòó",
|
|
"ïî åìêîñò.äàò÷èêó",
|
|
"ïî äëèíå",
|
|
"çàïîëíåíà",
|
|
"îòñóòñòâóåò",
|
|
"êóïþðîïðèåìíèêå",
|
|
"â êàññåòå",
|
|
"îáìàíà",
|
|
"ñòåêåðíîãî ìîòîðà",
|
|
"òðàíñïîðò.ìîòîðà",
|
|
"òðàíñïîðò.ìîòîðà",
|
|
"âûðàâíèâàíèÿ",
|
|
"îòñóòñòâóåò",
|
|
"îïòèêè",
|
|
"ìàã.äàò÷èêà",
|
|
"äàò÷èêà",
|
|
"ìîäåìà",
|
|
"ñâÿçè ñ ÔÐ",
|
|
"ÔÏ1,ÔÏ2 èëè ÷àñû",
|
|
"ÔÏ 1",
|
|
"ÔÏ 2",
|
|
"â êîìàíäå ê ÔÏ",
|
|
"çàïðîøåííûõ äàííûõ",
|
|
"âûâîäà äàííûõ",
|
|
"â êîìàíäå ÔÏ",
|
|
"íå ïîää.ÔÏ",
|
|
"äëèíà êîìàíäû ",
|
|
"íå BCD",
|
|
"ïàìÿòè ÔÏ",
|
|
"ëèöåíçèÿ",
|
|
"íîìåð óæå ââåäåí",
|
|
"ìåíüøå äàòû â ÔÏ",
|
|
"ïåðåïîëíåíà",
|
|
"óæå îòêðûòà",
|
|
"íå îòêðûòà",
|
|
"ñìåíû",
|
|
"ñìåíû",
|
|
"â ÔÏ",
|
|
"",
|
|
"íîìåð íå ââåäåí",
|
|
"ïîâðåæä. çàïèñü",
|
|
"ïîñëåäíÿÿ çàïèñü",
|
|
"ïàìÿòü ðåãèñòðîâ",
|
|
"äåíåæíîãî ðåãèñòðà",
|
|
"",
|
|
"",
|
|
"àêòèâèçàöèè",
|
|
"àêò.ïåðåïîëíåíà",
|
|
"àêòèâèçàöèè",
|
|
"2õ ñáîéíûõ çàïèñåé",
|
|
"ïàðàìåòðû â êîìàíäå",
|
|
"ïàðàìåòð",
|
|
"ïàðàìåòðû",
|
|
"íå ïîääåðæ.ÔÐ",
|
|
"",
|
|
"îøèáêà ÏÎ ÔÐ",
|
|
"íàêîïëåíèÿ â ñìåíå",
|
|
"íåâåðíûé ðåã.íîìåð",
|
|
"íàêîï.ïî ñåêöèÿì",
|
|
"íàêîï.ïî ñêèäêàì",
|
|
"äèàïàçîíà ñêèäîê",
|
|
"äèàïàçîíà îïëàòû",
|
|
"äèàïàçîíà îïëàòû 2",
|
|
"äèàïàçîíà îïëàòû 3",
|
|
"äèàïàçîíà îïëàòû 4",
|
|
"ìåíüøå èòîãà ÷åêà",
|
|
"íàëè÷íîñòè â êàññå",
|
|
"íàêîïëåíèÿ ïî íàëîãàì",
|
|
"èòîãà ÷åêà",
|
|
"îïåðàöèÿ íåâîçìîæíà",
|
|
"ïåðåïîëíåí",
|
|
"íàêîï.ïî íàëîãàì",
|
|
"áåçíàë.ñóììà áîëüøå",
|
|
"ïðåâûñèëà 24 ÷àñà",
|
|
"",
|
|
"ïðåä.êîìàíäû",
|
|
"íàêîïëåíèé â ñìåíå",
|
|
"íàêîïëåíèé 2 â ñìåíå",
|
|
"íàêîïëåíèé 3 â ñìåíå",
|
|
"íàêîïëåíèé 4 â ñìåíå",
|
|
"äëÿ ïîâòîðà",
|
|
"îøèáêà êîë-âà ñìåí",
|
|
"êîìàíäû ïðîäîëæåíèÿ",
|
|
"îòêðûò äðóãèì îï.",
|
|
"äèàïàçîíà íàäáàâîê",
|
|
"íàïðÿæåíèå 24Â",
|
|
"íå îïðåäåëåíà",
|
|
"îïåðàöèÿ",
|
|
"èòîã ÷åêà",
|
|
"ïðè óìíîæåíèè",
|
|
"äèàïàçîíà öåíû",
|
|
"äèàïàçîíà êîë-âà",
|
|
"äèàïàçîíà îòäåëà",
|
|
"",
|
|
"äåíåã â ñåêöèè",
|
|
"äåíåã â ñåêöèè",
|
|
"ñ ÔÏ",
|
|
"äåíåã ïî íàëîãàì",
|
|
"äåíåã ïî íàëîãàì",
|
|
"ïèòàíèÿ",
|
|
"ëåíòû",
|
|
"ëåíòû",
|
|
"äåíåã ïî íàëîãó",
|
|
"äåíåã ïî íàëîãó",
|
|
"ïî âûïëàòå â ñìåíå",
|
|
"ÔÏ",
|
|
"îòðåç÷èêà",
|
|
"ïîääåðæ.",
|
|
"ïîääåðæ.",
|
|
"",
|
|
"ïèòàíèÿ",
|
|
"íåò èìïóëüñîâ",
|
|
"íåò ñèãíàëà",
|
|
"",
|
|
"",
|
|
"ðåäàêòèðóåòñÿ",
|
|
"îáîðóäîâàíèÿ",
|
|
"äàòà",
|
|
"ôîðìàò äàòû",
|
|
"çíà÷åíèå â ïîëå äëèíû",
|
|
"äèàïàçîíà èòîãà ÷åêà",
|
|
"ñâÿçè ñ ÔÏ",
|
|
"ñâÿçè ñ ÔÏ",
|
|
"ñâÿçè ñ ÔÏ",
|
|
"ñâÿçè ñ ÔÏ",
|
|
"íàëè÷íîñòè",
|
|
"ïî ïðîäàæàì",
|
|
"ïî ïîêóïêàì",
|
|
"ïî âîçâðàòàì ïðîäàæ",
|
|
"ïî âîçâðàòàì ïîêóïîê",
|
|
"ïî âíåñåíèþ â ñìåíå",
|
|
"ïî íàäáàâêàì â ÷åêå",
|
|
"ïî ñêèäêàì â ÷åêå",
|
|
"èòîã íàäáàâêè",
|
|
"èòîã ñêèäêè â ÷åêå",
|
|
"÷åêà",
|
|
"ôèñêàëèçèðîâàíà",
|
|
"ðàçìåð â íàñòðîéêàõ",
|
|
"ãðàíèöó ïîëÿ ïå÷àòè",
|
|
"ïîëåé",
|
|
"ÎÇÓ ïðîøëî óñïåøíî",
|
|
"ëèìèò îïåðàöèé â ÷åêå",
|
|
"ñ ÝÊËÇ",
|
|
"îòñóòñòâóåò",
|
|
"Íåêîðð.ôîðìàò êîìàíäû",
|
|
"ñîñòîÿíèå ÝÊËÇ",
|
|
"",
|
|
"â ñîñòàâå ÝÊËÇ",
|
|
"âðåì.ðåñóðñ ÝÊËÇ",
|
|
"ïåðåïîëíåíà",
|
|
"Íåâåðíûå äàòà è âðåìÿ ",
|
|
"Íåò çàïðîøåííûõ äàííûõ ",
|
|
"ÝÊËÇ",
|
|
"Ïåðåïîëíåíèå êîë-âà",
|
|
"Ïåðåïîëíåíèå ñóììû",
|
|
"Óæå àêòèâèçèðîâàíà",
|
|
"äàòû è âðåìåíè",
|
|
"ñóòî÷íûé îò÷åò",
|
|
"íàïðÿæåíèÿ",
|
|
"èòîãîâ ÷åêà è ÝÊËÇ",
|
|
"íîìåðîâ ñìåí",
|
|
//"ïîäê.äîê.ïóñò ",
|
|
//"äîê.îòñóòñòâóåò",
|
|
//"ðåäàêòèðóåòñÿ",
|
|
//"èìïóëüñû"
|
|
|
|
};
|
|
|
|
TDataDescStruct const JournalErrorNumberDesc1 = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
ERROR_RECORDS_NUM, // ðàçìåð ìàññèâà
|
|
&ErrorJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ErrorRecords[0].error), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(TErrorRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
(void*)ErrorNumberList1, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Ñòðîêà ñ îøèáêîé ïî-àíãëèéñêè
|
|
*************************************/
|
|
CPU_INT08U const *ErrorNumberListEng[ERRORS_NUM] =
|
|
{
|
|
"Net oshibki",
|
|
"Oshibka svyazi c kupuropriemnikom",
|
|
"Kriticheskaya oshibka kupuropriemnika",
|
|
"Vybros kupury po mag.datchiku",
|
|
"Vybros kupury pri transportirovke",
|
|
"Vybros kupury po identifikacii",
|
|
"Vybros kupury po verifikacii",
|
|
"Vybros kupury po opt.datchiku",
|
|
"Vybros kupury po zapretu",
|
|
"Vybros kupury po emk.datchiku",
|
|
"Vybros kupury po dline",
|
|
"Kasseta zapolnena",
|
|
"Kasseta otsutstvuet",
|
|
"Zamin v kupuropriemnike",
|
|
"Zamin v kassete",
|
|
"Popytka obmana",
|
|
"Oshibka stekernogo motora",
|
|
"Oshibka skorosti transp.motora",
|
|
"Oshibka transp.motora",
|
|
"Oshibka mehanizmavyravnivaniya",
|
|
"Kasseta otsutstvuet",
|
|
"Oshibka optiki",
|
|
"Oshibka magn.datchika",
|
|
"Oshibka emk.datchika",
|
|
"Nekriticheskaya oshibka kupuropriemnika",
|
|
|
|
"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 0x0A",
|
|
"Oshibka FR 0x0B",
|
|
"Oshibka FR 0x11",
|
|
"Oshibka FR 0x12",
|
|
"Oshibka FR 0x13",
|
|
"Oshibka FR 0x14",
|
|
"Oshibka FR 0x15",
|
|
"Oshibka FR 0x16",
|
|
"Oshibka FR 0x17",
|
|
"Oshibka FR 0x18",
|
|
"Oshibka FR 0x19",
|
|
"Oshibka FR 0x1A",
|
|
"Oshibka FR 0x1B",
|
|
"Oshibka FR 0x1C",
|
|
"Oshibka FR 0x1D",
|
|
"Oshibka FR 0x1F",
|
|
"Oshibka FR 0x20",
|
|
"Oshibka FR 0x21",
|
|
"Oshibka FR 0x22",
|
|
"Oshibka FR 0x23",
|
|
"Oshibka FR 0x24",
|
|
"Oshibka FR 0x25",
|
|
"Oshibka FR 0x28",
|
|
"Oshibka FR 0x33",
|
|
"Oshibka FR 0x35",
|
|
"Oshibka FR 0x36",
|
|
"Oshibka FR 0x37",
|
|
"Oshibka FR 0x38",
|
|
"Oshibka FR 0x39",
|
|
"Oshibka FR 0x3A",
|
|
"Oshibka FR 0x3C",
|
|
"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 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 0x56",
|
|
"Oshibka FR 0x57",
|
|
"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 0x64",
|
|
"Oshibka FR 0x65",
|
|
"Oshibka FR 0x66",
|
|
"Oshibka FR 0x67",
|
|
"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 0x70",
|
|
"Oshibka FR 0x71",
|
|
"Oshibka FR 0x72",
|
|
"Oshibka FR 0x73",
|
|
"Oshibka FR 0x74",
|
|
"Oshibka FR 0x75",
|
|
"Oshibka FR 0x76",
|
|
"Oshibka FR 0x77",
|
|
"Oshibka FR 0x78",
|
|
"Oshibka FR 0x79",
|
|
"Oshibka FR 0x7A",
|
|
"Oshibka FR 0x7B",
|
|
"Oshibka FR 0x7C",
|
|
"Oshibka FR 0x7D",
|
|
"Oshibka FR 0x7E",
|
|
"Oshibka FR 0x7F",
|
|
"Oshibka FR 0x80",
|
|
"Oshibka FR 0x81",
|
|
"Oshibka FR 0x82",
|
|
"Oshibka FR 0x83",
|
|
"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 0x8F",
|
|
"Oshibka FR 0x90",
|
|
"Oshibka FR 0x91",
|
|
"Oshibka FR 0x92",
|
|
"Oshibka FR 0x93",
|
|
"Oshibka FR 0x94",
|
|
"Oshibka FR 0xA0",
|
|
"Oshibka FR 0xA1",
|
|
"Oshibka FR 0xA2",
|
|
"Oshibka FR 0xA3",
|
|
"Oshibka FR 0xA4",
|
|
"Oshibka FR 0xA5",
|
|
"Oshibka FR 0xA6",
|
|
"Oshibka FR 0xA7",
|
|
"Oshibka FR 0xA8",
|
|
"Oshibka FR 0xA9",
|
|
"Oshibka FR 0xAA",
|
|
"Oshibka FR 0xB0",
|
|
"Oshibka FR 0xB1",
|
|
"Oshibka FR 0xB2",
|
|
"Oshibka FR 0xC0",
|
|
"Oshibka FR 0xC1",
|
|
"Oshibka FR 0xC2",
|
|
"Oshibka FR 0xC3"
|
|
"Oshibka FR 0xC4"
|
|
};
|
|
|
|
TDataDescStruct const JournalErrorNumberDescEng = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
ERROR_RECORDS_NUM, // ðàçìåð ìàññèâà
|
|
&ErrorJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ErrorRecords[0].error), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&ErrorNumberRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(TErrorRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
(void*)ErrorNumberListEng, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Âðåìÿ îøèáêè â æóðíàëå îøèáîê
|
|
*************************************/
|
|
TDataDescStruct const JournalErrorTimeDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_TIME, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
ERROR_RECORDS_NUM, // ðàçìåð ìàññèâà
|
|
&ErrorJournalIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, ErrorRecords[0].time), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(TErrorRecord), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Èíäåêñ ïðè ïðîñìîòðå æóðíàëà ñîáûòèé
|
|
*************************************/
|
|
TRangeValueULONG const EventJournalIndexRange = {0, 0xffffffff};
|
|
CPU_INT08U const EventJournalIndexName[] = "Çàïèñü #";
|
|
CPU_INT32U EventJournalIndex = 0;
|
|
|
|
void OnChangeEventJournalIndex(void)
|
|
{
|
|
TEventRecord record;
|
|
|
|
if (EventJournalIndex == 0xffffffff) EventJournalIndex = EVENT_RECORDS_NUM-1;
|
|
else if (EventJournalIndex > ERROR_RECORDS_NUM-1) EventJournalIndex = 0;
|
|
|
|
GetEventRecord(&record, 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, // ïðèçíàê ìàññèâà
|
|
ERROR_RECORDS_NUM, // ðàçìåð ìàññèâà
|
|
&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)
|
|
{
|
|
ClearErrorJournal();
|
|
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
|
|
};
|
|
|
|
/*************************************
|
|
Êàíàëüíûé ñ÷åò÷èê ÷èñëà çàïóñêîâ
|
|
*************************************/
|
|
TDataDescStruct const CounterChannelRunDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, Counters.CounterChannelRun[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Êàíàëüíûé ñ÷åò÷èê äåíåã
|
|
*************************************/
|
|
TDataDescStruct const CounterChannelMoneyDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, Counters.CounterChannelMoney[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Êàíàëüíûé ñ÷åò÷èê âðåìåíè ðàáîòû
|
|
*************************************/
|
|
TDataDescStruct const CounterChannelTimeDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, Counters.CounterChannelTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Êàíàëüíûé ñ÷åò÷èê ÷èñëà çàïóñêîâ
|
|
*************************************/
|
|
TDataDescStruct const CounterChannelRunLongDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, CountersLong.CounterChannelRunLong[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
CounterRunName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Êàíàëüíûé ñ÷åò÷èê äåíåã
|
|
*************************************/
|
|
TDataDescStruct const CounterChannelMoneyLongDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, CountersLong.CounterChannelMoneyLong[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
CounterMoneyName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Êàíàëüíûé ñ÷åò÷èê âðåìåíè ðàáîòû
|
|
*************************************/
|
|
TDataDescStruct const CounterChannelTimeLongDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_TIME_COUNT, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
CHANNELS_NUM, // ðàçìåð ìàññèâà
|
|
&ChannelStIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, CountersLong.CounterChannelTimeLong), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
CounterTimeName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Êîìàíäà íà î÷èñòêó ñòàòèñòèêè
|
|
*************************************/
|
|
CPU_INT32U ClearStatCmd = 0;
|
|
|
|
CPU_INT08U const ClearStatCmdName[] = "Î÷èñòêà";
|
|
|
|
void OnChangeClearStatCmd(void)
|
|
{
|
|
if (ClearStatCmd)
|
|
{
|
|
ClearCounters();
|
|
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, 2};
|
|
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_ENABLE,
|
|
1 // çíà÷åíèå ïî óìîë÷àíèþ
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Íàñòðîéêà ÷åêà
|
|
*************************************/
|
|
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 ServiceNameRange = {0, 0};
|
|
CPU_INT08U const ServiceNameName[] = "";
|
|
CPU_INT08U const *ServiceNameList[] = {"Óñëóãè ñîëÿðèÿ"};
|
|
|
|
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, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
ServiceNameName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
ServiceNameList, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0 // çíà÷åíèå ïî óìîë÷àíèþ
|
|
};
|
|
|
|
/*************************************
|
|
Äåñêðèïòîð äëÿ ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
|
|
*************************************/
|
|
TDataDescStruct const AcceptedMoneyDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, FRAM_AcceptedMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Äåñêðèïòîð Crc16 ýíåðãîíåçàâèñèìîãî ñîõðàíåíèÿ òåêóùèõ äåíåã
|
|
*************************************/
|
|
TDataDescStruct const AcceptedMoneyCRC16Desc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, crc_AcceptedMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
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
|
|
};
|
|
|
|
|
|
/*************************************
|
|
Èíäåêñ íîìèíàëà êóïþðû äëÿ ïðîñìîòðà ñ÷åò÷èêîâ ïî íîìèíàëàì
|
|
*************************************/
|
|
CPU_INT32U BillnomViewIndex;
|
|
TRangeValueULONG const BillnomIndexRange = {0, 23};
|
|
CPU_INT08U const BillnomName[] = " ÍÎÌÈÍÀË #";
|
|
CPU_INT08U const* BillnomItems[] = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
|
|
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"};
|
|
|
|
TDataDescStruct const BillnomIndexDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
&BillnomViewIndex, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
(void*)&BillnomIndexRange, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
BillnomName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_IS_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
BillnomItems, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Çíà÷åíèå íîìèíàëà êóïþðû äëÿ ïðîñìîòðà ñ÷åò÷èêîâ
|
|
*************************************/
|
|
extern CPU_INT32U BillNominals[24];
|
|
CPU_INT08U const BillnomValName[] = "Çíà÷åíèå,ðóá.";
|
|
|
|
TDataDescStruct const BillnomDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_RAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
24, // ðàçìåð ìàññèâà
|
|
(void*)&BillnomIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)&BillNominals, // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
BillnomValName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Ñ÷åò÷èêè íîìèíàëîâ êóïþð â êóïþðíèêå
|
|
*************************************/
|
|
CPU_INT08U const BillnomCountersName[] = "Êîë-âî";
|
|
|
|
TDataDescStruct const BillnomCountersDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
|
24, // ðàçìåð ìàññèâà
|
|
&BillnomIndexDesc, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, Counters.CounterBillNominals[0]), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
BillnomCountersName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Îáùåå êîëè÷åñòâî êóïþð â êóïþðíèêå
|
|
*************************************/
|
|
CPU_INT08U const BillCounterName[] = "Âñåãî êóïþð";
|
|
|
|
TDataDescStruct const BillCounterDesc = {
|
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
0, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, Counters.BillsCount), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
0, // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
BillCounterName, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
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_ENABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Ïðèçíàê îòïðàâêè ñîîáùåíèÿ îá èíêàññàöèè
|
|
*************************************/
|
|
TDataDescStruct const IncasSendFlagDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
1, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, IncasEmailFlag), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Äåíüãè îò ïîñëåäíåé èíêàññàöèè
|
|
*************************************/
|
|
TDataDescStruct const IncasMoneyDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
1, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, IncasMoney), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
/*************************************
|
|
Âðåìÿ ïîñëåäíåé èíêàññàöèè
|
|
*************************************/
|
|
TDataDescStruct const IncasTimeDesc = {
|
|
DATA_DESC_EDIT, // òèï äåñêðèïòîðà
|
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
|
DATA_NO_ARRAY, // ïðèçíàê ìàññèâà
|
|
1, // ðàçìåð ìàññèâà
|
|
NULL, // óêàçàòåëü íà äåñðèïòîð èíäåêñà ìàññèâà
|
|
(void*)offsetof(TFramMap, IncasTime), // óêàçàòåëü íà ïåðåìåííóþ èëè àäðåñ FRAM
|
|
NULL, // óêàçàòåëü íà ãðàíèöû ïàðàìåòðà
|
|
NULL, // ôóíêöèÿ ïî èçìåíåíèþ
|
|
sizeof(CPU_INT32U), // ñìåùåíèå ìåæäó ýëåìåíòàìè â ìàññèâå
|
|
NULL, // óêàçàòåëü íà ñòðîêó íàçâàíèÿ ïàðàìåòðà
|
|
DATA_NO_INDEX, // ïðèçíàê èíäåêñíîãî ïàðàìåòðà (ñïèñîê ñòðîê)
|
|
NULL, // óêàçàòåëü íà ñïèñîê ñòðîê äëÿ èíäåêñíîãî ïàðàìåòðà
|
|
DATA_INIT_DISABLE,
|
|
0
|
|
};
|
|
|
|
//**************************************************
|
|
//**************************************************
|
|
//**************************************************
|
|
const TDataDescArrayStruct AllDataArray[] = {
|
|
&WorkTimeDesc,
|
|
&ChannelIndexDesc,
|
|
&EnableChannelDesc,
|
|
&EnableValidatorDesc,
|
|
&EnableModemDesc,
|
|
&EnableFiscalDesc,
|
|
&EnableCoinDesc,
|
|
&TimeOutBeforeDesc,
|
|
&TimeOutAfterDesc,
|
|
&MaxWorkTimeDesc,
|
|
&MinWorkTimeDesc,
|
|
&WeekEndDesc,
|
|
&PeriodWeekendIndexDesc,
|
|
&PeriodWeekdaysIndexDesc,
|
|
|
|
&PriceWeekendDesc,
|
|
&PriceWeekdaysDesc,
|
|
|
|
&PriceTimeWeekendDesc,
|
|
&PriceTimeWeekdaysDesc,
|
|
&T_Start_WeekdaysDesc,
|
|
&T_End_WeekdaysDesc,
|
|
&T_Start_WeekendDesc,
|
|
&T_End_WeekendDesc,
|
|
|
|
&PrintZReportDesc,
|
|
&PrintXReportDesc,
|
|
&ErrorJournalIndexDesc,
|
|
&SystemTimeDesc,
|
|
&SystemTimeEditDesc,
|
|
&CoinPerPulseDesc,
|
|
|
|
&BillFormatDesc,
|
|
&NameChannelDesc,
|
|
|
|
&PassDesc,
|
|
&DeviceIDDesc,
|
|
|
|
&EnableEmailErrorSendDesc,
|
|
&EnableEmailJournalSendDesc,
|
|
&ClearJournalAfterSendDesc,
|
|
&StatSendHourMinDesc,
|
|
&SendTestEmailDesc,
|
|
&BillnomIndexDesc,
|
|
|
|
&DeferredStartDesc,
|
|
&StartButtonNameDesc,
|
|
|
|
NULL
|
|
};
|
|
|
|
|